summaryrefslogtreecommitdiff
path: root/devel
diff options
context:
space:
mode:
Diffstat (limited to 'devel')
-rw-r--r--devel/kdesdk3/Makefile4
-rw-r--r--devel/kdesdk3/distinfo6
-rw-r--r--devel/kdesdk3/pkg-plist8
-rw-r--r--devel/kdesdk4/Makefile4
-rw-r--r--devel/kdesdk4/distinfo6
-rw-r--r--devel/kdesdk4/pkg-plist8
-rw-r--r--devel/kdevelop/Makefile9
-rw-r--r--devel/kdevelop/distinfo6
-rw-r--r--devel/kdevelop/files/patch-appwizard-libtool4444
-rw-r--r--devel/kdevelop/files/patch-fix_qmake_parser6341
-rw-r--r--devel/kdevelop/files/patch-kdev_fix_hang_3.4.154
-rw-r--r--devel/kdevelop/pkg-plist14
12 files changed, 288 insertions, 10616 deletions
diff --git a/devel/kdesdk3/Makefile b/devel/kdesdk3/Makefile
index 6c3c6936f347..6c8afea465f5 100644
--- a/devel/kdesdk3/Makefile
+++ b/devel/kdesdk3/Makefile
@@ -7,7 +7,6 @@
PORTNAME= kdesdk
PORTVERSION= ${KDE_VERSION}
-PORTREVISION= 1
CATEGORIES= devel kde
MASTER_SITES= ${MASTER_SITE_KDE}
MASTER_SITE_SUBDIR= stable/${PORTVERSION:S/.0//}/src
@@ -32,7 +31,8 @@ USE_AUTOTOOLS= libtool:15
USE_LDCONFIG= yes
-CONFIGURE_ARGS+=--with-db-include-dir=${BDB_INCLUDE_DIR} \
+CONFIGURE_ARGS+=--mandir=${MANPREFIX}/man \
+ --with-db-include-dir=${BDB_INCLUDE_DIR} \
--with-db-lib-dir=${BDB_LIB_DIR} --with-db-name=${BDB_LIB_NAME} \
--with-apr-config=${LOCALBASE}/bin/apr-1-config \
--with-apu-config=${LOCALBASE}/bin/apu-1-config \
diff --git a/devel/kdesdk3/distinfo b/devel/kdesdk3/distinfo
index 3924e1bead89..257ecf2fb13a 100644
--- a/devel/kdesdk3/distinfo
+++ b/devel/kdesdk3/distinfo
@@ -1,3 +1,3 @@
-MD5 (KDE/kdesdk-3.5.6.tar.bz2) = 1462e1a884fdaa070ed493c10a336728
-SHA256 (KDE/kdesdk-3.5.6.tar.bz2) = 63cdea02149b38998a4d41899f8da863fd9f9333dd17a8d1d3fea9fc6607d7e4
-SIZE (KDE/kdesdk-3.5.6.tar.bz2) = 5046602
+MD5 (KDE/kdesdk-3.5.7.tar.bz2) = 6a8f7b7fea753e2a4517301dee76d84a
+SHA256 (KDE/kdesdk-3.5.7.tar.bz2) = 701c3ca8ecd699a513760fe4c492e102f6daa3a9db16e458435f1ac5af3dd021
+SIZE (KDE/kdesdk-3.5.7.tar.bz2) = 5200751
diff --git a/devel/kdesdk3/pkg-plist b/devel/kdesdk3/pkg-plist
index 061e86c3a5b0..148292cec7db 100644
--- a/devel/kdesdk3/pkg-plist
+++ b/devel/kdesdk3/pkg-plist
@@ -595,10 +595,12 @@ share/apps/umbrello/pics/CVstruct.png
share/apps/umbrello/pics/actor.png
share/apps/umbrello/pics/aggregation.png
share/apps/umbrello/pics/align_bottom.png
+share/apps/umbrello/pics/align_hori_distribute.png
share/apps/umbrello/pics/align_hori_middle.png
share/apps/umbrello/pics/align_left.png
share/apps/umbrello/pics/align_right.png
share/apps/umbrello/pics/align_top.png
+share/apps/umbrello/pics/align_vert_distribute.png
share/apps/umbrello/pics/align_vert_middle.png
share/apps/umbrello/pics/anchor.png
share/apps/umbrello/pics/andline.png
@@ -777,6 +779,12 @@ share/doc/HTML/en/kdesvn-build/index.docbook
share/doc/HTML/en/kompare/common
share/doc/HTML/en/kompare/index.cache.bz2
share/doc/HTML/en/kompare/index.docbook
+share/doc/HTML/en/kompare/settings-diff1.png
+share/doc/HTML/en/kompare/settings-diff2.png
+share/doc/HTML/en/kompare/settings-diff3.png
+share/doc/HTML/en/kompare/settings-diff4.png
+share/doc/HTML/en/kompare/settings-view1.png
+share/doc/HTML/en/kompare/settings-view2.png
share/doc/HTML/en/umbrello/activity-diagram.png
share/doc/HTML/en/umbrello/add-remove-languages.png
share/doc/HTML/en/umbrello/aggregation.png
diff --git a/devel/kdesdk4/Makefile b/devel/kdesdk4/Makefile
index 6c3c6936f347..6c8afea465f5 100644
--- a/devel/kdesdk4/Makefile
+++ b/devel/kdesdk4/Makefile
@@ -7,7 +7,6 @@
PORTNAME= kdesdk
PORTVERSION= ${KDE_VERSION}
-PORTREVISION= 1
CATEGORIES= devel kde
MASTER_SITES= ${MASTER_SITE_KDE}
MASTER_SITE_SUBDIR= stable/${PORTVERSION:S/.0//}/src
@@ -32,7 +31,8 @@ USE_AUTOTOOLS= libtool:15
USE_LDCONFIG= yes
-CONFIGURE_ARGS+=--with-db-include-dir=${BDB_INCLUDE_DIR} \
+CONFIGURE_ARGS+=--mandir=${MANPREFIX}/man \
+ --with-db-include-dir=${BDB_INCLUDE_DIR} \
--with-db-lib-dir=${BDB_LIB_DIR} --with-db-name=${BDB_LIB_NAME} \
--with-apr-config=${LOCALBASE}/bin/apr-1-config \
--with-apu-config=${LOCALBASE}/bin/apu-1-config \
diff --git a/devel/kdesdk4/distinfo b/devel/kdesdk4/distinfo
index 3924e1bead89..257ecf2fb13a 100644
--- a/devel/kdesdk4/distinfo
+++ b/devel/kdesdk4/distinfo
@@ -1,3 +1,3 @@
-MD5 (KDE/kdesdk-3.5.6.tar.bz2) = 1462e1a884fdaa070ed493c10a336728
-SHA256 (KDE/kdesdk-3.5.6.tar.bz2) = 63cdea02149b38998a4d41899f8da863fd9f9333dd17a8d1d3fea9fc6607d7e4
-SIZE (KDE/kdesdk-3.5.6.tar.bz2) = 5046602
+MD5 (KDE/kdesdk-3.5.7.tar.bz2) = 6a8f7b7fea753e2a4517301dee76d84a
+SHA256 (KDE/kdesdk-3.5.7.tar.bz2) = 701c3ca8ecd699a513760fe4c492e102f6daa3a9db16e458435f1ac5af3dd021
+SIZE (KDE/kdesdk-3.5.7.tar.bz2) = 5200751
diff --git a/devel/kdesdk4/pkg-plist b/devel/kdesdk4/pkg-plist
index 061e86c3a5b0..148292cec7db 100644
--- a/devel/kdesdk4/pkg-plist
+++ b/devel/kdesdk4/pkg-plist
@@ -595,10 +595,12 @@ share/apps/umbrello/pics/CVstruct.png
share/apps/umbrello/pics/actor.png
share/apps/umbrello/pics/aggregation.png
share/apps/umbrello/pics/align_bottom.png
+share/apps/umbrello/pics/align_hori_distribute.png
share/apps/umbrello/pics/align_hori_middle.png
share/apps/umbrello/pics/align_left.png
share/apps/umbrello/pics/align_right.png
share/apps/umbrello/pics/align_top.png
+share/apps/umbrello/pics/align_vert_distribute.png
share/apps/umbrello/pics/align_vert_middle.png
share/apps/umbrello/pics/anchor.png
share/apps/umbrello/pics/andline.png
@@ -777,6 +779,12 @@ share/doc/HTML/en/kdesvn-build/index.docbook
share/doc/HTML/en/kompare/common
share/doc/HTML/en/kompare/index.cache.bz2
share/doc/HTML/en/kompare/index.docbook
+share/doc/HTML/en/kompare/settings-diff1.png
+share/doc/HTML/en/kompare/settings-diff2.png
+share/doc/HTML/en/kompare/settings-diff3.png
+share/doc/HTML/en/kompare/settings-diff4.png
+share/doc/HTML/en/kompare/settings-view1.png
+share/doc/HTML/en/kompare/settings-view2.png
share/doc/HTML/en/umbrello/activity-diagram.png
share/doc/HTML/en/umbrello/add-remove-languages.png
share/doc/HTML/en/umbrello/aggregation.png
diff --git a/devel/kdevelop/Makefile b/devel/kdevelop/Makefile
index 2a6c2622f8a0..bf6a7d481709 100644
--- a/devel/kdevelop/Makefile
+++ b/devel/kdevelop/Makefile
@@ -6,11 +6,11 @@
#
PORTNAME= kdevelop
-PORTVERSION= 3.4.0
-PORTREVISION= 3
+PORTVERSION= 3.4.1
+PORTREVISION= 0
CATEGORIES?= devel kde
MASTER_SITES= ${MASTER_SITE_KDE}
-MASTER_SITE_SUBDIR= stable/${PORTNAME}-${PORTVERSION}/src
+MASTER_SITE_SUBDIR= stable/${KDE_VERSION}/src
# DISTNAME= ${KDE_DISTNAME}
DIST_SUBDIR= KDE
@@ -48,8 +48,7 @@ CONFIGURE_ARGS+=--with-qtdoc-dir=${X11BASE}/share/doc/qt/html \
--with-db-libdir=${BDB_LIB_DIR} --with-db-lib=${BDB_LIB_NAME} \
--with-apr-config=${LOCALBASE}/bin/apr-1-config \
--with-apu-config=${LOCALBASE}/bin/apu-1-config \
- --with-subversion-dir=${LOCALBASE} \
- --with-svn-include=${LOCALBASE}/include \
+ --with-svn-include=${LOCALBASE}/include/subversion-1 \
--with-svn-lib=${LOCALBASE}/lib \
--with-neon-config=${LOCALBASE}/bin/neon-config
diff --git a/devel/kdevelop/distinfo b/devel/kdevelop/distinfo
index 7d68d9afd840..04f9608a0684 100644
--- a/devel/kdevelop/distinfo
+++ b/devel/kdevelop/distinfo
@@ -1,3 +1,3 @@
-MD5 (KDE/kdevelop-3.4.0.tar.bz2) = 9cf367c89329acf23738e23c0b663ee9
-SHA256 (KDE/kdevelop-3.4.0.tar.bz2) = c477c8980b5dfd4d512ad793d69dd4d5c7987e376789f68796a8013db08d3194
-SIZE (KDE/kdevelop-3.4.0.tar.bz2) = 9158370
+MD5 (KDE/kdevelop-3.4.1.tar.bz2) = abc6cc2831ad4c0f4da9fba9e38edce1
+SHA256 (KDE/kdevelop-3.4.1.tar.bz2) = f917321e6c4c35861aad7f9990f98f7b988fa4756ade624c9866f999a4845ef8
+SIZE (KDE/kdevelop-3.4.1.tar.bz2) = 9368912
diff --git a/devel/kdevelop/files/patch-appwizard-libtool b/devel/kdevelop/files/patch-appwizard-libtool
index 99a3a09bf555..74792fcbcc1b 100644
--- a/devel/kdevelop/files/patch-appwizard-libtool
+++ b/devel/kdevelop/files/patch-appwizard-libtool
@@ -1,5 +1,5 @@
---- parts/appwizard/common/admin/libtool.m4.in Sun Oct 1 19:29:11 2006
-+++ parts/appwizard/common/admin/libtool.m4.in Sun Dec 18 22:53:17 2005
+--- parts/appwizard/common/admin/libtool.m4.in.orig Mon May 14 09:53:52 2007
++++ parts/appwizard/common/admin/libtool.m4.in Tue May 15 15:19:39 2007
@@ -1,28 +1,13 @@
# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
-## Copyright 1996, 1997, 1998, 1999, 2000, 2001
@@ -666,36 +666,7 @@
irix5* | irix6* | nonstopux*)
case $host_os in
nonstopux*) version_type=nonstopux ;;
-@@ -1421,22 +1565,19 @@
- 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'
-- libsuff=
-- if test "x$LINUX_64_MODE" = x64; then
-- # Some platforms are per default 64-bit, so there's no /lib64
-- if test -d /lib64; then
-- libsuff=64
-- fi
-- fi
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
-- sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
-- sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
- # 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)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;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,
-@@ -1446,6 +1587,18 @@
+@@ -1446,6 +1590,18 @@
dynamic_linker='GNU/Linux ld.so'
;;
@@ -714,7 +685,7 @@
netbsd*)
version_type=sunos
need_lib_prefix=no
-@@ -1455,7 +1608,7 @@
+@@ -1455,7 +1611,7 @@
finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
dynamic_linker='NetBSD (a.out) ld.so'
else
@@ -723,7 +694,7 @@
soname_spec='${libname}${release}${shared_ext}$major'
dynamic_linker='NetBSD ld.elf_so'
fi
-@@ -1483,8 +1636,13 @@
+@@ -1483,8 +1639,13 @@
openbsd*)
version_type=sunos
@@ -738,7 +709,7 @@
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
-@@ -1504,7 +1662,7 @@
+@@ -1504,7 +1665,7 @@
os2*)
libname_spec='$name'
@@ -747,7 +718,7 @@
need_lib_prefix=no
library_names_spec='$libname${shared_ext} $libname.a'
dynamic_linker='OS/2 ld.exe'
-@@ -1522,13 +1680,6 @@
+@@ -1522,13 +1683,6 @@
sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
;;
@@ -761,7 +732,7 @@
solaris*)
version_type=linux
need_lib_prefix=no
-@@ -1554,7 +1705,7 @@
+@@ -1554,7 +1708,7 @@
need_version=yes
;;
@@ -770,7 +741,7 @@
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'
-@@ -1587,6 +1738,29 @@
+@@ -1587,6 +1741,29 @@
fi
;;
@@ -800,7 +771,7 @@
uts4*)
version_type=linux
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-@@ -1600,6 +1774,11 @@
+@@ -1600,6 +1777,11 @@
esac
AC_MSG_RESULT([$dynamic_linker])
test "$dynamic_linker" = no && can_build_shared=no
@@ -812,7 +783,7 @@
])# AC_LIBTOOL_SYS_DYNAMIC_LINKER
-@@ -1624,6 +1803,9 @@
+@@ -1624,6 +1806,9 @@
AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile'])
fi
fi
@@ -822,7 +793,7 @@
# Extract list of available tagged configurations in $ofile.
# Note that this assumes the entire list is on one line.
-@@ -1650,7 +1832,9 @@
+@@ -1650,7 +1835,9 @@
case $tagname in
CXX)
@@ -833,7 +804,7 @@
AC_LIBTOOL_LANG_CXX_CONFIG
else
tagname=""
-@@ -1712,7 +1896,7 @@
+@@ -1712,7 +1899,7 @@
# AC_LIBTOOL_WIN32_DLL
# --------------------
@@ -842,7 +813,7 @@
AC_DEFUN([AC_LIBTOOL_WIN32_DLL],
[AC_BEFORE([$0], [AC_LIBTOOL_SETUP])
])# AC_LIBTOOL_WIN32_DLL
-@@ -1750,7 +1934,7 @@
+@@ -1750,7 +1937,7 @@
# AC_DISABLE_SHARED
# -----------------
@@ -851,7 +822,7 @@
AC_DEFUN([AC_DISABLE_SHARED],
[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
AC_ENABLE_SHARED(no)
-@@ -1886,7 +2070,7 @@
+@@ -1886,7 +2073,7 @@
if test -n "$file_magic_test_file"; then
case $deplibs_check_method in
"file_magic "*)
@@ -860,7 +831,7 @@
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
-@@ -1996,7 +2180,7 @@
+@@ -1996,7 +2183,7 @@
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,
@@ -869,7 +840,7 @@
# Break only if it was the GNU/non-GNU ld that we prefer.
case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
*GNU* | *'with BFD'*)
-@@ -2028,7 +2212,7 @@
+@@ -2028,7 +2215,7 @@
AC_DEFUN([AC_PROG_LD_GNU],
[AC_REQUIRE([AC_PROG_EGREP])dnl
AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
@@ -878,7 +849,7 @@
case `$LD -v 2>&1 </dev/null` in
*GNU* | *'with BFD'*)
lt_cv_prog_gnu_ld=yes
-@@ -2055,6 +2239,15 @@
+@@ -2055,6 +2242,15 @@
*) reload_flag=" $reload_flag" ;;
esac
reload_cmds='$LD$reload_flag -o $output$reload_objs'
@@ -894,7 +865,7 @@
])# AC_PROG_LD_RELOAD_FLAG
-@@ -2088,44 +2281,36 @@
+@@ -2088,44 +2284,36 @@
lt_cv_deplibs_check_method=pass_all
;;
@@ -950,7 +921,7 @@
lt_cv_file_magic_cmd=/usr/bin/file
lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
;;
-@@ -2141,7 +2326,7 @@
+@@ -2141,7 +2329,7 @@
hpux10.20* | hpux11*)
lt_cv_file_magic_cmd=/usr/bin/file
@@ -959,7 +930,7 @@
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
-@@ -2157,40 +2342,24 @@
+@@ -2157,40 +2345,24 @@
esac
;;
@@ -1011,7 +982,7 @@
;;
netbsd*)
-@@ -2212,32 +2381,22 @@
+@@ -2212,32 +2384,22 @@
;;
openbsd*)
@@ -1047,7 +1018,7 @@
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]]'
-@@ -2258,10 +2417,13 @@
+@@ -2258,10 +2420,13 @@
siemens)
lt_cv_deplibs_check_method=pass_all
;;
@@ -1062,7 +1033,7 @@
lt_cv_deplibs_check_method=pass_all
;;
esac
-@@ -2281,36 +2443,43 @@
+@@ -2281,36 +2446,43 @@
# Let the user override the test.
lt_cv_path_NM="$NM"
else
@@ -1130,7 +1101,7 @@
test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
fi])
NM="$lt_cv_path_NM"
-@@ -2342,13 +2511,13 @@
+@@ -2342,13 +2514,13 @@
# -----------------------------------
# sets LIBLTDL to the link flags for the libltdl convenience library and
# LTDLINCL to the include flags for the libltdl header and adds
@@ -1151,7 +1122,7 @@
AC_DEFUN([AC_LIBLTDL_CONVENIENCE],
[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
case $enable_ltdl_convenience in
-@@ -2367,13 +2536,13 @@
+@@ -2367,13 +2539,13 @@
# -----------------------------------
# sets LIBLTDL to the link flags for the libltdl installable library and
# LTDLINCL to the include flags for the libltdl header and adds
@@ -1172,7 +1143,7 @@
# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
AC_DEFUN([AC_LIBLTDL_INSTALLABLE],
[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-@@ -2411,10 +2580,21 @@
+@@ -2411,10 +2583,21 @@
# ---------------
AC_DEFUN([_LT_AC_LANG_CXX],
[AC_REQUIRE([AC_PROG_CXX])
@@ -1195,7 +1166,7 @@
# AC_LIBTOOL_F77
# --------------
-@@ -2454,7 +2634,7 @@
+@@ -2454,7 +2637,7 @@
# AC_LIBTOOL_RC
@@ -1204,7 +1175,7 @@
# enable support for Windows resource files
AC_DEFUN([AC_LIBTOOL_RC],
[AC_REQUIRE([LT_AC_PROG_RC])
-@@ -2487,36 +2667,9 @@
+@@ -2487,36 +2670,9 @@
_LT_AC_SYS_COMPILER
@@ -1244,7 +1215,7 @@
## CAVEAT EMPTOR:
## There is no encapsulation within the following macros, do not change
-@@ -2530,9 +2683,9 @@
+@@ -2530,9 +2686,9 @@
AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
AC_LIBTOOL_SYS_LIB_STRIP
@@ -1256,7 +1227,7 @@
AC_MSG_CHECKING([if libtool supports shared libraries])
AC_MSG_RESULT([$can_build_shared])
-@@ -2541,7 +2694,7 @@
+@@ -2541,7 +2697,7 @@
# On AIX, shared libraries and static libraries use the same namespace, and
# are all built from PIC.
@@ -1265,7 +1236,7 @@
aix3*)
test "$enable_shared" = yes && enable_static=no
if test -n "$RANLIB"; then
-@@ -2550,48 +2703,11 @@
+@@ -2550,48 +2706,11 @@
fi
;;
@@ -1316,7 +1287,7 @@
esac
AC_MSG_RESULT([$enable_shared])
-@@ -2616,7 +2732,7 @@
+@@ -2616,7 +2735,7 @@
AC_DEFUN([_LT_AC_LANG_CXX_CONFIG],
[AC_LANG_PUSH(C++)
AC_REQUIRE([AC_PROG_CXX])
@@ -1325,7 +1296,7 @@
_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
_LT_AC_TAGVAR(allow_undefined_flag, $1)=
-@@ -2628,6 +2744,7 @@
+@@ -2628,6 +2747,7 @@
_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
@@ -1333,7 +1304,7 @@
_LT_AC_TAGVAR(hardcode_automatic, $1)=no
_LT_AC_TAGVAR(module_cmds, $1)=
_LT_AC_TAGVAR(module_expsym_cmds, $1)=
-@@ -2645,7 +2762,7 @@
+@@ -2645,7 +2765,7 @@
_LT_AC_TAGVAR(compiler_lib_search_path, $1)=
# Source file extension for C++ test sources.
@@ -1342,7 +1313,7 @@
# Object file extension for compiled C++ test sources.
objext=o
-@@ -2655,11 +2772,15 @@
+@@ -2655,11 +2775,15 @@
lt_simple_compile_test_code="int some_variable = 0;\n"
# Code to be used in simple link tests
@@ -1359,7 +1330,7 @@
# Allow CC to be a program name with arguments.
lt_save_CC=$CC
lt_save_LD=$LD
-@@ -2670,18 +2791,18 @@
+@@ -2670,18 +2794,18 @@
if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
else
@@ -1381,7 +1352,7 @@
# We don't want -fno-exception wen compiling C++ code, so set the
# no_builtin_flag separately
-@@ -2699,8 +2820,8 @@
+@@ -2699,8 +2823,8 @@
# 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
@@ -1392,7 +1363,7 @@
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-@@ -2726,7 +2847,7 @@
+@@ -2726,7 +2850,7 @@
# 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.
@@ -1401,7 +1372,7 @@
fi
# Commands to make compiler produce verbose output that lists
-@@ -2756,8 +2877,23 @@
+@@ -2756,8 +2880,23 @@
exp_sym_flag='-Bexport'
no_entry_flag=""
else
@@ -1427,7 +1398,7 @@
exp_sym_flag='-bexport'
no_entry_flag='-bnoentry'
fi
-@@ -2774,7 +2910,7 @@
+@@ -2774,7 +2913,7 @@
_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
if test "$GXX" = yes; then
@@ -1436,7 +1407,7 @@
# 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`
-@@ -2793,8 +2929,12 @@
+@@ -2793,8 +2932,12 @@
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
fi
@@ -1449,7 +1420,7 @@
else
# not using gcc
if test "$host_cpu" = ia64; then
-@@ -2803,15 +2943,16 @@
+@@ -2803,15 +2946,16 @@
shared_flag='-G'
else
if test "$aix_use_runtimelinking" = yes; then
@@ -1470,7 +1441,7 @@
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.
-@@ -2820,13 +2961,12 @@
+@@ -2820,13 +2964,12 @@
_LT_AC_SYS_LIBPATH_AIX
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
@@ -1486,7 +1457,7 @@
else
# Determine the default libpath from the value encoded in an empty executable.
_LT_AC_SYS_LIBPATH_AIX
-@@ -2835,16 +2975,26 @@
+@@ -2835,16 +2978,26 @@
# -berok will link without error, but may produce a broken library.
_LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
@@ -1518,7 +1489,7 @@
chorus*)
case $cc_basename in
*)
-@@ -2858,12 +3008,12 @@
+@@ -2858,12 +3011,12 @@
# _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
# as there is no search path for DLLs.
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
@@ -1533,7 +1504,7 @@
# If the export-symbols file already is a .def file (1st line
# is EXPORTS), use it as is; otherwise, prepend...
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-@@ -2872,70 +3022,81 @@
+@@ -2872,70 +3025,81 @@
echo EXPORTS > $output_objdir/$soname.def;
cat $export_symbols >> $output_objdir/$soname.def;
fi~
@@ -1580,7 +1551,15 @@
- *) # Darwin 1.3 on
- if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
-- else
++ if test "$GXX" = yes ; then
++ lt_int_apple_cc_single_mod=no
++ output_verbose_link_cmd='echo'
++ if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then
++ lt_int_apple_cc_single_mod=yes
++ fi
++ if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
++ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+ else
- case ${MACOSX_DEPLOYMENT_TARGET} in
- 10.[012])
- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
@@ -1589,11 +1568,30 @@
- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,dynamic_lookup'
- ;;
- esac
-+ if test "$GXX" = yes ; then
-+ lt_int_apple_cc_single_mod=no
-+ output_verbose_link_cmd='echo'
-+ if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then
-+ lt_int_apple_cc_single_mod=yes
++ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
++ fi
++ _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
++ # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
++ if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
++ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
++ else
++ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "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~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
++ fi
++ _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
++ else
++ case $cc_basename in
++ xlc*)
++ output_verbose_link_cmd='echo'
++ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
++ _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
++ # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
++ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
++ _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
++ ;;
++ *)
++ _LT_AC_TAGVAR(ld_shlibs, $1)=no
++ ;;
++ esac
fi
- ;;
- esac
@@ -1625,34 +1623,6 @@
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-+ if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-+ else
-+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-+ fi
-+ _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-+ # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
-+ if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-+ else
-+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "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~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-+ fi
-+ _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-+ else
-+ case $cc_basename in
-+ xlc*)
-+ output_verbose_link_cmd='echo'
-+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
-+ _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-+ # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
-+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-+ _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-+ ;;
-+ *)
-+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
-+ ;;
-+ esac
-+ fi
+ ;;
dgux*)
@@ -1667,7 +1637,7 @@
# Green Hills C++ Compiler
# FIXME: insert proper C++ library support
_LT_AC_TAGVAR(ld_shlibs, $1)=no
-@@ -2946,14 +3107,14 @@
+@@ -2946,14 +3110,14 @@
;;
esac
;;
@@ -1684,7 +1654,7 @@
# FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
# conventions
_LT_AC_TAGVAR(ld_shlibs, $1)=yes
-@@ -2970,12 +3131,12 @@
+@@ -2970,12 +3134,12 @@
# location of the library.
case $cc_basename in
@@ -1700,7 +1670,7 @@
# Commands to make compiler produce verbose output that lists
# what "hidden" libraries, object files and flags are used when
# linking a shared library.
-@@ -2984,11 +3145,11 @@
+@@ -2984,11 +3148,11 @@
# 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.
@@ -1714,7 +1684,7 @@
else
# FIXME: insert proper C++ library support
_LT_AC_TAGVAR(ld_shlibs, $1)=no
-@@ -2998,33 +3159,22 @@
+@@ -2998,33 +3162,22 @@
;;
hpux10*|hpux11*)
if test $with_gnu_ld = no; then
@@ -1755,7 +1725,7 @@
;;
*)
_LT_AC_TAGVAR(hardcode_direct, $1)=yes
-@@ -3035,17 +3185,20 @@
+@@ -3035,17 +3188,20 @@
esac
case $cc_basename in
@@ -1782,7 +1752,7 @@
;;
esac
# Commands to make compiler produce verbose output that lists
-@@ -3061,12 +3214,15 @@
+@@ -3061,12 +3217,15 @@
*)
if test "$GXX" = yes; then
if test $with_gnu_ld = no; then
@@ -1802,7 +1772,7 @@
;;
esac
fi
-@@ -3077,11 +3233,25 @@
+@@ -3077,11 +3236,25 @@
;;
esac
;;
@@ -1830,7 +1800,7 @@
# Archives containing C++ object files must be created using
# "CC -ar", where "CC" is the IRIX C++ compiler. This is
-@@ -3092,9 +3262,9 @@
+@@ -3092,9 +3265,9 @@
*)
if test "$GXX" = yes; then
if test "$with_gnu_ld" = no; then
@@ -1842,7 +1812,7 @@
fi
fi
_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-@@ -3105,14 +3275,14 @@
+@@ -3105,14 +3278,14 @@
;;
linux*)
case $cc_basename in
@@ -1860,7 +1830,7 @@
# Commands to make compiler produce verbose output that lists
# what "hidden" libraries, object files and flags are used when
# linking a shared library.
-@@ -3130,20 +3300,44 @@
+@@ -3130,20 +3303,44 @@
# "CC -Bstatic", where "CC" is the KAI C++ compiler.
_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
;;
@@ -1911,7 +1881,7 @@
runpath_var=LD_RUN_PATH
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-@@ -3171,7 +3365,7 @@
+@@ -3171,7 +3368,7 @@
;;
mvs*)
case $cc_basename in
@@ -1920,7 +1890,7 @@
# FIXME: insert proper C++ library support
_LT_AC_TAGVAR(ld_shlibs, $1)=no
;;
-@@ -3192,15 +3386,31 @@
+@@ -3192,15 +3389,31 @@
# 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::"'
;;
@@ -1954,7 +1924,7 @@
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-@@ -3210,14 +3420,14 @@
+@@ -3210,14 +3423,14 @@
_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
;;
@@ -1972,7 +1942,7 @@
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-@@ -3235,7 +3445,7 @@
+@@ -3235,7 +3448,7 @@
*)
if test "$GXX" = yes && test "$with_gnu_ld" = no; then
_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
@@ -1981,7 +1951,7 @@
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-@@ -3254,13 +3464,13 @@
+@@ -3254,13 +3467,13 @@
;;
osf4* | osf5*)
case $cc_basename in
@@ -1997,7 +1967,7 @@
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-@@ -3269,17 +3479,17 @@
+@@ -3269,17 +3482,17 @@
# the KAI C++ compiler.
_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs'
;;
@@ -2019,7 +1989,7 @@
$rm $lib.exp'
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-@@ -3298,7 +3508,7 @@
+@@ -3298,7 +3511,7 @@
*)
if test "$GXX" = yes && test "$with_gnu_ld" = no; then
_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
@@ -2028,7 +1998,7 @@
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-@@ -3319,27 +3529,14 @@
+@@ -3319,27 +3532,14 @@
# FIXME: insert proper C++ library support
_LT_AC_TAGVAR(ld_shlibs, $1)=no
;;
@@ -2058,7 +2028,7 @@
# Lucid
# FIXME: insert proper C++ library support
_LT_AC_TAGVAR(ld_shlibs, $1)=no
-@@ -3352,36 +3549,33 @@
+@@ -3352,36 +3552,33 @@
;;
solaris*)
case $cc_basename in
@@ -2107,7 +2077,7 @@
# Archives containing C++ object files must be created using
# "CC -xar", where "CC" is the Sun C++ compiler. This is
-@@ -3389,9 +3583,9 @@
+@@ -3389,9 +3586,9 @@
# in the archive.
_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
;;
@@ -2119,7 +2089,7 @@
# The C++ compiler must be used to create the archive.
_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
-@@ -3401,9 +3595,9 @@
+@@ -3401,9 +3598,9 @@
if test "$GXX" = yes && test "$with_gnu_ld" = no; then
_LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
if $CC --version | grep -v '^2\.7' > /dev/null; then
@@ -2131,7 +2101,7 @@
# Commands to make compiler produce verbose output that lists
# what "hidden" libraries, object files and flags are used when
-@@ -3412,9 +3606,9 @@
+@@ -3412,9 +3609,9 @@
else
# g++ 2.7 appears to require `-G' NOT `-shared' on this
# platform.
@@ -2143,14 +2113,14 @@
# Commands to make compiler produce verbose output that lists
# what "hidden" libraries, object files and flags are used when
-@@ -3427,12 +3621,63 @@
+@@ -3427,12 +3624,63 @@
;;
esac
;;
- sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*)
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
+ _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
-+ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ runpath_var='LD_RUN_PATH'
+
@@ -2183,7 +2153,7 @@
+ # names for shared libraries.
+ _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
++ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
@@ -2209,7 +2179,7 @@
# NonStop-UX NCC 3.20
# FIXME: insert proper C++ library support
_LT_AC_TAGVAR(ld_shlibs, $1)=no
-@@ -3469,8 +3714,6 @@
+@@ -3469,8 +3717,6 @@
AC_LIBTOOL_PROG_LD_SHLIBS($1)
AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
@@ -2218,7 +2188,7 @@
AC_LIBTOOL_CONFIG($1)
-@@ -3488,7 +3731,7 @@
+@@ -3488,7 +3734,7 @@
])# AC_LIBTOOL_LANG_CXX_CONFIG
# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME])
@@ -2227,7 +2197,7 @@
# Figure out "hidden" library dependencies from verbose
# compiler output when linking a shared library.
# Parse the compiler output and extract the necessary
-@@ -3542,7 +3785,7 @@
+@@ -3542,7 +3788,7 @@
# The `*' in the case matches for architectures that use `case' in
# $output_verbose_cmd can trigger glob expansion during the loop
# eval without this substitution.
@@ -2236,7 +2206,7 @@
for p in `eval $output_verbose_link_cmd`; do
case $p in
-@@ -3582,7 +3825,7 @@
+@@ -3582,7 +3828,7 @@
fi
;;
@@ -2245,7 +2215,7 @@
# This assumes that the test object file only shows up
# once in the compiler output.
if test "$p" = "conftest.$objext"; then
-@@ -3618,13 +3861,37 @@
+@@ -3618,13 +3864,37 @@
$rm -f confest.$objext
@@ -2284,7 +2254,7 @@
# Ensure that the configuration vars for the C compiler are
# suitably defined. Those variables are subsequently used by
# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-@@ -3668,12 +3935,16 @@
+@@ -3668,12 +3938,16 @@
# ltmain only uses $CC for tagged configurations so make sure $CC is set.
_LT_AC_SYS_COMPILER
@@ -2302,7 +2272,7 @@
AC_MSG_CHECKING([if libtool supports shared libraries])
AC_MSG_RESULT([$can_build_shared])
-@@ -3683,7 +3954,7 @@
+@@ -3683,7 +3957,7 @@
# On AIX, shared libraries and static libraries use the same namespace, and
# are all built from PIC.
@@ -2311,7 +2281,7 @@
aix3*)
test "$enable_shared" = yes && enable_static=no
if test -n "$RANLIB"; then
-@@ -3691,8 +3962,10 @@
+@@ -3691,8 +3965,10 @@
postinstall_cmds='$RANLIB $lib'
fi
;;
@@ -2324,7 +2294,7 @@
;;
esac
AC_MSG_RESULT([$enable_shared])
-@@ -3702,8 +3975,6 @@
+@@ -3702,8 +3978,6 @@
test "$enable_shared" = yes || enable_static=yes
AC_MSG_RESULT([$enable_static])
@@ -2333,7 +2303,7 @@
_LT_AC_TAGVAR(GCC, $1)="$G77"
_LT_AC_TAGVAR(LD, $1)="$LD"
-@@ -3713,8 +3984,6 @@
+@@ -3713,8 +3987,6 @@
AC_LIBTOOL_PROG_LD_SHLIBS($1)
AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
@@ -2342,7 +2312,7 @@
AC_LIBTOOL_CONFIG($1)
-@@ -3743,20 +4012,27 @@
+@@ -3743,20 +4015,27 @@
lt_simple_compile_test_code="class foo {}\n"
# Code to be used in simple link tests
@@ -2371,7 +2341,7 @@
## 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
-@@ -3768,8 +4044,6 @@
+@@ -3768,8 +4047,6 @@
AC_LIBTOOL_PROG_LD_SHLIBS($1)
AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
@@ -2380,7 +2350,7 @@
AC_LIBTOOL_CONFIG($1)
-@@ -3779,7 +4053,7 @@
+@@ -3779,7 +4056,7 @@
# AC_LIBTOOL_LANG_RC_CONFIG
@@ -2389,7 +2359,7 @@
# Ensure that the configuration vars for the Windows resource compiler are
# suitably defined. Those variables are subsequently used by
# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-@@ -3803,11 +4077,16 @@
+@@ -3803,11 +4080,16 @@
# ltmain only uses $CC for tagged configurations so make sure $CC is set.
_LT_AC_SYS_COMPILER
@@ -2406,7 +2376,7 @@
_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
AC_LIBTOOL_CONFIG($1)
-@@ -3833,11 +4112,12 @@
+@@ -3833,11 +4115,12 @@
# without removal of \ escapes.
if test -n "${ZSH_VERSION+set}" ; then
setopt NO_GLOB_SUBST
@@ -2421,7 +2391,7 @@
libname_spec library_names_spec soname_spec extract_expsyms_cmds \
old_striplib striplib file_magic_cmd finish_cmds finish_eval \
deplibs_check_method reload_flag reload_cmds need_locks \
-@@ -3887,7 +4167,7 @@
+@@ -3887,7 +4170,7 @@
_LT_AC_TAGVAR(archive_cmds, $1) | \
_LT_AC_TAGVAR(archive_expsym_cmds, $1) | \
_LT_AC_TAGVAR(module_cmds, $1) | \
@@ -2430,7 +2400,7 @@
_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) | \
_LT_AC_TAGVAR(export_symbols_cmds, $1) | \
extract_expsyms_cmds | reload_cmds | finish_cmds | \
-@@ -3953,11 +4233,11 @@
+@@ -3953,11 +4236,11 @@
SED=$lt_SED
# Sed that helps us avoid accidentally triggering echo(1) options like -n.
@@ -2444,7 +2414,7 @@
# The names of the tagged configurations supported by this script.
available_tags=
-@@ -3988,6 +4268,12 @@
+@@ -3988,6 +4271,12 @@
# The host system.
host_alias=$host_alias
host=$host
@@ -2457,7 +2427,7 @@
# An echo program that does not interpret backslashes.
echo=$lt_echo
-@@ -3999,6 +4285,9 @@
+@@ -3999,6 +4288,9 @@
# A C compiler.
LTCC=$lt_LTCC
@@ -2467,7 +2437,7 @@
# A language-specific compiler.
CC=$lt_[]_LT_AC_TAGVAR(compiler, $1)
-@@ -4018,7 +4307,7 @@
+@@ -4018,7 +4310,7 @@
NM=$lt_NM
# A symbol stripping program
@@ -2476,7 +2446,7 @@
# Used to examine libraries when file_magic_cmd begins "file"
MAGIC_CMD=$MAGIC_CMD
-@@ -4049,7 +4338,7 @@
+@@ -4049,7 +4341,7 @@
libext="$libext"
# Shared library suffix (normally ".so").
@@ -2485,7 +2455,7 @@
# Executable file suffix (normally "").
exeext="$exeext"
-@@ -4064,7 +4353,7 @@
+@@ -4064,7 +4356,7 @@
# Does compiler simultaneously support -c and -o options?
compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)
@@ -2494,7 +2464,7 @@
need_locks=$lt_need_locks
# Do we need the lib prefix for modules?
-@@ -4293,7 +4582,10 @@
+@@ -4293,7 +4585,10 @@
# If there is no Makefile yet, we rely on a make rule to execute
# `config.status --recheck' to rerun these tests and create the
# libtool script then.
@@ -2506,7 +2476,7 @@
fi
])# AC_LIBTOOL_CONFIG
-@@ -4335,9 +4627,6 @@
+@@ -4335,9 +4630,6 @@
# Regexp to match symbols that can be accessed directly from C.
sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
@@ -2516,7 +2486,7 @@
# Transform an extracted symbol line into a proper C declaration
lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"
-@@ -4359,14 +4648,30 @@
+@@ -4359,14 +4651,30 @@
lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
;;
@@ -2549,7 +2519,7 @@
;;
sysv4)
symcode='[[DFNSTU]]'
-@@ -4384,14 +4689,17 @@
+@@ -4384,14 +4692,17 @@
# If we're using GNU nm, then use its standard symbol codes.
case `$NM -V 2>&1` in
*GNU* | *'with BFD'*)
@@ -2569,7 +2539,7 @@
# Check to see that the pipe works correctly.
pipe_works=no
-@@ -4547,6 +4855,10 @@
+@@ -4547,6 +4858,10 @@
# DJGPP does not support shared libraries at all
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
;;
@@ -2580,7 +2550,7 @@
sysv4*MP*)
if test -d /usr/nec; then
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
-@@ -4555,7 +4867,7 @@
+@@ -4555,7 +4870,7 @@
hpux*)
# PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
# not for PA HP-UX.
@@ -2589,7 +2559,7 @@
hppa*64*|ia64*)
;;
*)
-@@ -4580,18 +4892,28 @@
+@@ -4580,18 +4895,28 @@
;;
chorus*)
case $cc_basename in
@@ -2621,7 +2591,7 @@
# Green Hills C++ Compiler
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
;;
-@@ -4599,22 +4921,22 @@
+@@ -4599,22 +4924,22 @@
;;
esac
;;
@@ -2650,7 +2620,7 @@
hppa*64*|ia64*)
# +Z the default
;;
-@@ -4627,9 +4949,13 @@
+@@ -4627,9 +4952,13 @@
;;
esac
;;
@@ -2665,7 +2635,7 @@
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
# CC pic flag -KPIC is the default.
-@@ -4640,18 +4966,24 @@
+@@ -4640,18 +4969,24 @@
;;
linux*)
case $cc_basename in
@@ -2694,7 +2664,7 @@
# Compaq C++
# Make sure the PIC flag is empty. It appears that all Alpha
# Linux and Compaq Tru64 Unix objects are PIC.
-@@ -4668,7 +5000,7 @@
+@@ -4668,7 +5003,7 @@
;;
mvs*)
case $cc_basename in
@@ -2703,7 +2673,7 @@
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
;;
*)
-@@ -4679,14 +5011,14 @@
+@@ -4679,14 +5014,14 @@
;;
osf3* | osf4* | osf5*)
case $cc_basename in
@@ -2721,7 +2691,7 @@
# Digital/Compaq C++
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
# Make sure the PIC flag is empty. It appears that all Alpha
-@@ -4700,24 +5032,15 @@
+@@ -4700,24 +5035,15 @@
;;
psos*)
;;
@@ -2748,7 +2718,7 @@
# Green Hills C++ Compiler
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
;;
-@@ -4727,12 +5050,12 @@
+@@ -4727,12 +5053,12 @@
;;
sunos4*)
case $cc_basename in
@@ -2763,7 +2733,7 @@
# Lucid
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
;;
-@@ -4742,7 +5065,7 @@
+@@ -4742,7 +5068,7 @@
;;
tandem*)
case $cc_basename in
@@ -2772,7 +2742,7 @@
# NonStop-UX NCC 3.20
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
;;
-@@ -4750,7 +5073,14 @@
+@@ -4750,7 +5076,14 @@
;;
esac
;;
@@ -2788,7 +2758,7 @@
;;
vxworks*)
;;
-@@ -4797,6 +5127,11 @@
+@@ -4797,6 +5130,11 @@
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
;;
@@ -2800,7 +2770,7 @@
msdosdjgpp*)
# Just because we use GCC doesn't mean we suddenly get shared libraries
# on systems that don't support them.
-@@ -4813,7 +5148,7 @@
+@@ -4813,7 +5151,7 @@
hpux*)
# PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
# not for PA HP-UX.
@@ -2809,7 +2779,7 @@
hppa*64*|ia64*)
# +Z the default
;;
-@@ -4839,6 +5174,16 @@
+@@ -4839,6 +5177,16 @@
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
fi
;;
@@ -2826,7 +2796,7 @@
mingw* | pw32* | os2*)
# This hack is so that the source file can tell whether it is being
-@@ -4850,7 +5195,7 @@
+@@ -4850,7 +5198,7 @@
_LT_AC_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.
@@ -2835,7 +2805,7 @@
hppa*64*|ia64*)
# +Z the default
;;
-@@ -4874,12 +5219,19 @@
+@@ -4874,12 +5222,19 @@
;;
linux*)
@@ -2856,7 +2826,7 @@
ccc*)
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
# All Alpha code is PIC.
-@@ -4894,15 +5246,15 @@
+@@ -4894,15 +5249,15 @@
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
;;
@@ -2878,7 +2848,7 @@
;;
sunos4*)
-@@ -4911,7 +5263,7 @@
+@@ -4911,7 +5266,7 @@
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
;;
@@ -2887,7 +2857,7 @@
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-@@ -4924,6 +5276,17 @@
+@@ -4924,6 +5279,17 @@
fi
;;
@@ -2905,7 +2875,7 @@
uts4*)
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-@@ -4951,7 +5314,7 @@
+@@ -4951,7 +5317,7 @@
[_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
_LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
fi
@@ -2914,7 +2884,7 @@
# For platforms which do not support PIC, -DPIC is meaningless:
*djgpp*)
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-@@ -4960,6 +5323,16 @@
+@@ -4960,6 +5326,16 @@
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])"
;;
esac
@@ -2931,7 +2901,7 @@
])
-@@ -4984,7 +5357,7 @@
+@@ -4984,7 +5360,7 @@
_LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
;;
cygwin* | mingw*)
@@ -2940,7 +2910,7 @@
;;
*)
_LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-@@ -5010,7 +5383,7 @@
+@@ -5010,7 +5386,7 @@
_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
_LT_AC_TAGVAR(hardcode_automatic, $1)=no
_LT_AC_TAGVAR(module_cmds, $1)=
@@ -2949,7 +2919,7 @@
_LT_AC_TAGVAR(always_export_symbols, $1)=no
_LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
# include_expsyms should be a list of space-separated symbols to be *always*
-@@ -5027,7 +5400,8 @@
+@@ -5027,7 +5403,8 @@
# rely on this symbol name, it's probably fine to never include it in
# preloaded symbol tables.
extract_expsyms_cmds=
@@ -2959,7 +2929,7 @@
case $host_os in
cygwin* | mingw* | pw32*)
# FIXME: the MSVC++ port hasn't been tested in a loooong time
-@@ -5037,6 +5411,10 @@
+@@ -5037,6 +5414,10 @@
with_gnu_ld=no
fi
;;
@@ -2970,7 +2940,7 @@
openbsd*)
with_gnu_ld=no
;;
-@@ -5047,6 +5425,27 @@
+@@ -5047,6 +5428,27 @@
# If archive_cmds runs LD, not CC, wlarc should be empty
wlarc='${wl}'
@@ -2998,7 +2968,7 @@
# See if GNU ld supports shared libraries.
case $host_os in
aix3* | aix4* | aix5*)
-@@ -5084,7 +5483,7 @@
+@@ -5084,7 +5486,7 @@
_LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
# support --undefined. This deserves some investigation. FIXME
@@ -3007,7 +2977,7 @@
else
_LT_AC_TAGVAR(ld_shlibs, $1)=no
fi
-@@ -5094,13 +5493,13 @@
+@@ -5094,13 +5496,13 @@
# _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
# as there is no search path for DLLs.
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
@@ -3024,7 +2994,7 @@
# If the export-symbols file already is a .def file (1st line
# is EXPORTS), use it as is; otherwise, prepend...
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-@@ -5109,9 +5508,55 @@
+@@ -5109,9 +5511,55 @@
echo EXPORTS > $output_objdir/$soname.def;
cat $export_symbols >> $output_objdir/$soname.def;
fi~
@@ -3082,7 +3052,7 @@
fi
;;
-@@ -5120,12 +5565,12 @@
+@@ -5120,12 +5568,12 @@
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
wlarc=
else
@@ -3098,7 +3068,7 @@
if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
_LT_AC_TAGVAR(ld_shlibs, $1)=no
cat <<EOF 1>&2
-@@ -5139,13 +5584,40 @@
+@@ -5139,13 +5587,40 @@
EOF
elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
@@ -3141,7 +3111,7 @@
sunos4*)
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
wlarc=
-@@ -5155,24 +5627,19 @@
+@@ -5155,24 +5630,19 @@
*)
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
@@ -3173,7 +3143,7 @@
fi
else
# PORTME fill in a description of your system's linker (not GNU ld)
-@@ -5184,7 +5651,7 @@
+@@ -5184,7 +5654,7 @@
# Note: this linker hardcodes the directories in LIBPATH if there
# are no directories specified by -L.
_LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
@@ -3182,7 +3152,7 @@
# Neither direct hardcoding nor static linking is supported with a
# broken collect2.
_LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
-@@ -5206,9 +5673,21 @@
+@@ -5206,9 +5676,21 @@
else
_LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
fi
@@ -3206,7 +3176,7 @@
exp_sym_flag='-bexport'
no_entry_flag='-bnoentry'
fi
-@@ -5225,7 +5704,7 @@
+@@ -5225,7 +5707,7 @@
_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
if test "$GCC" = yes; then
@@ -3215,7 +3185,7 @@
# 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`
-@@ -5244,8 +5723,12 @@
+@@ -5244,8 +5726,12 @@
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
fi
@@ -3228,7 +3198,7 @@
else
# not using gcc
if test "$host_cpu" = ia64; then
-@@ -5253,30 +5736,30 @@
+@@ -5253,30 +5739,30 @@
# chokes on -Wl,-G. The following line is correct:
shared_flag='-G'
else
@@ -3270,7 +3240,7 @@
else
# Determine the default libpath from the value encoded in an empty executable.
_LT_AC_SYS_LIBPATH_AIX
-@@ -5285,13 +5768,11 @@
+@@ -5285,13 +5771,11 @@
# -berok will link without error, but may produce a broken library.
_LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
@@ -3287,7 +3257,7 @@
fi
fi
;;
-@@ -5304,7 +5785,7 @@
+@@ -5304,7 +5788,7 @@
_LT_AC_TAGVAR(ld_shlibs, $1)=no
;;
@@ -3296,7 +3266,7 @@
_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
;;
-@@ -5314,69 +5795,69 @@
+@@ -5314,69 +5798,69 @@
# hardcode_libdir_flag_spec is actually meaningless, as there is
# no search path for DLLs.
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
@@ -3412,7 +3382,7 @@
;;
dgux*)
-@@ -5409,8 +5890,8 @@
+@@ -5409,8 +5893,8 @@
;;
# FreeBSD 3 and greater uses gcc -shared to do shared libraries.
@@ -3423,7 +3393,7 @@
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
_LT_AC_TAGVAR(hardcode_direct, $1)=yes
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-@@ -5418,7 +5899,7 @@
+@@ -5418,7 +5902,7 @@
hpux9*)
if test "$GCC" = yes; then
@@ -3432,7 +3402,7 @@
else
_LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
fi
-@@ -5432,47 +5913,62 @@
+@@ -5432,47 +5916,62 @@
_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
;;
@@ -3519,7 +3489,7 @@
_LT_AC_TAGVAR(hardcode_direct, $1)=yes
_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-@@ -5486,7 +5982,7 @@
+@@ -5486,7 +5985,7 @@
irix5* | irix6* | nonstopux*)
if test "$GCC" = yes; then
@@ -3528,7 +3498,7 @@
else
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
-@@ -5519,7 +6015,8 @@
+@@ -5519,7 +6018,8 @@
_LT_AC_TAGVAR(hardcode_direct, $1)=yes
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
@@ -3538,7 +3508,7 @@
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
else
-@@ -5529,7 +6026,7 @@
+@@ -5529,7 +6029,7 @@
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
;;
*)
@@ -3547,7 +3517,7 @@
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
;;
esac
-@@ -5540,14 +6037,14 @@
+@@ -5540,14 +6040,14 @@
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
_LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
_LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
@@ -3564,7 +3534,7 @@
else
_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-@@ -5559,13 +6056,13 @@
+@@ -5559,13 +6059,13 @@
osf4* | osf5*) # as osf3* with the addition of -msym flag
if test "$GCC" = yes; then
_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
@@ -3580,7 +3550,7 @@
# Both c and cxx compiler support -rpath directly
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-@@ -5573,21 +6070,15 @@
+@@ -5573,21 +6073,15 @@
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
;;
@@ -3606,7 +3576,7 @@
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
_LT_AC_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'
-@@ -5596,8 +6087,18 @@
+@@ -5596,8 +6090,18 @@
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
case $host_os in
solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
@@ -3627,7 +3597,7 @@
esac
_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
;;
-@@ -5606,7 +6107,7 @@
+@@ -5606,7 +6110,7 @@
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.
@@ -3636,7 +3606,7 @@
else
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
fi
-@@ -5654,36 +6155,45 @@
+@@ -5654,36 +6158,45 @@
fi
;;
@@ -3703,7 +3673,7 @@
;;
uts4*)
-@@ -5701,11 +6211,6 @@
+@@ -5701,11 +6214,6 @@
AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
@@ -3715,7 +3685,7 @@
#
# Do we need to explicitly link libc?
#
-@@ -5726,13 +6231,14 @@
+@@ -5726,13 +6234,14 @@
AC_MSG_CHECKING([whether -lc should be explicitly linked in])
$rm conftest*
printf "$lt_simple_compile_test_code" > conftest.$ac_ext
@@ -3731,7 +3701,7 @@
compiler_flags=-v
linker_flags=-v
verstring=
-@@ -5860,7 +6366,7 @@
+@@ -5860,7 +6369,7 @@
# 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
@@ -3740,4043 +3710,3 @@
cat /dev/null > conftest.in
lt_ac_count=0
echo $ECHO_N "0123456789$ECHO_C" >conftest.in
---- parts/appwizard/common/admin/ltmain.sh Sun Oct 1 19:29:12 2006
-+++ parts/appwizard/common/admin/ltmain.sh Sun Dec 18 23:14:54 2005
-@@ -1,7 +1,7 @@
- # ltmain.sh - Provide generalized library-building support services.
- # NOTE: Changing this file will not affect anything until you rerun configure.
- #
--# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003
-+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
- # Free Software Foundation, Inc.
- # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
- #
-@@ -24,6 +24,34 @@
- # configuration script generated by Autoconf, you may include it under
- # the same distribution terms that you use for the rest of that program.
-
-+basename="s,^.*/,,g"
-+
-+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
-+# is ksh but when the shell is invoked as "sh" and the current value of
-+# the _XPG environment variable is not equal to 1 (one), the special
-+# positional parameter $0, within a function call, is the name of the
-+# function.
-+progpath="$0"
-+
-+# The name of this program:
-+progname=`echo "$progpath" | $SED $basename`
-+modename="$progname"
-+
-+# Global variables:
-+EXIT_SUCCESS=0
-+EXIT_FAILURE=1
-+
-+PROGRAM=ltmain.sh
-+PACKAGE=libtool
-+VERSION=1.5.22
-+TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)"
-+
-+# 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
-+
- # Check that we have a working $echo.
- if test "X$1" = X--no-reexec; then
- # Discard the --no-reexec flag, and continue.
-@@ -36,7 +64,7 @@
- :
- else
- # Restart under the correct shell, and then maybe $echo will work.
-- exec $SHELL "$0" --no-reexec ${1+"$@"}
-+ exec $SHELL "$progpath" --no-reexec ${1+"$@"}
- fi
-
- if test "X$1" = X--fallback-echo; then
-@@ -45,19 +73,9 @@
- cat <<EOF
- $*
- EOF
-- exit 0
-+ exit $EXIT_SUCCESS
- fi
-
--# The name of this program.
--progname=`$echo "$0" | ${SED} 's%^.*/%%'`
--modename="$progname"
--
--# Constants.
--PROGRAM=ltmain.sh
--PACKAGE=libtool
--VERSION=1.5a
--TIMESTAMP=" (1.1240 2003/06/26 06:55:19)"
--
- default_mode=
- help="Try \`$progname --help' for more information."
- magic="%%%MAGIC variable%%%"
-@@ -70,14 +88,15 @@
- Xsed="${SED}"' -e 1s/^X//'
- sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
- # test EBCDIC or ASCII
--case `echo A|tr A '\301'` in
-- A) # EBCDIC based system
-- SP2NL="tr '\100' '\n'"
-- NL2SP="tr '\r\n' '\100\100'"
-+case `echo X|tr X '\101'` in
-+ A) # ASCII based system
-+ # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
-+ SP2NL='tr \040 \012'
-+ NL2SP='tr \015\012 \040\040'
- ;;
-- *) # Assume ASCII based system
-- SP2NL="tr '\040' '\012'"
-- NL2SP="tr '\015\012' '\040\040'"
-+ *) # EBCDIC based system
-+ SP2NL='tr \100 \n'
-+ NL2SP='tr \r\n \100\100'
- ;;
- esac
-
-@@ -94,12 +113,14 @@
- fi
-
- # Make sure IFS has a sensible default
--: ${IFS=" "}
-+lt_nl='
-+'
-+IFS=" $lt_nl"
-
- if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
- $echo "$modename: not configured to build any kind of library" 1>&2
- $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- fi
-
- # Global variables.
-@@ -111,6 +132,8 @@
- show="$echo"
- show_help=
- execute_dlfiles=
-+duplicate_deps=no
-+preserve_args=
- lo2o="s/\\.lo\$/.${objext}/"
- o2lo="s/\\.${objext}\$/.lo/"
-
-@@ -118,10 +141,51 @@
- # Shell function definitions:
- # This seems to be the best place for them
-
-+# func_mktempdir [string]
-+# Make a temporary directory that won't clash with other running
-+# libtool processes, and avoids race conditions if possible. If
-+# given, STRING is the basename for that directory.
-+func_mktempdir ()
-+{
-+ my_template="${TMPDIR-/tmp}/${1-$progname}"
-+
-+ if test "$run" = ":"; then
-+ # Return a directory name, but don't create it in dry-run mode
-+ my_tmpdir="${my_template}-$$"
-+ else
-+
-+ # If mktemp works, use that first and foremost
-+ my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
-+
-+ if test ! -d "$my_tmpdir"; then
-+ # Failing that, at least try and use $RANDOM to avoid a race
-+ my_tmpdir="${my_template}-${RANDOM-0}$$"
-+
-+ save_mktempdir_umask=`umask`
-+ umask 0077
-+ $mkdir "$my_tmpdir"
-+ umask $save_mktempdir_umask
-+ fi
-+
-+ # If we're not in dry-run mode, bomb out on failure
-+ test -d "$my_tmpdir" || {
-+ $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2
-+ exit $EXIT_FAILURE
-+ }
-+ fi
-+
-+ $echo "X$my_tmpdir" | $Xsed
-+}
-+
-+
-+# func_win32_libid arg
-+# return the library type of file 'arg'
-+#
- # Need a lot of goo to handle *both* DLLs and import libs
- # Has to be a shell function in order to 'eat' the argument
- # that is supplied when $file_magic_command is called.
--win32_libid () {
-+func_win32_libid ()
-+{
- win32_libid_type="unknown"
- win32_fileres=`file -L $1 2>/dev/null`
- case $win32_fileres in
-@@ -130,17 +194,16 @@
- ;;
- *ar\ archive*) # could be an import, or static
- if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
-- grep -E 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
-+ $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
- win32_nmres=`eval $NM -f posix -A $1 | \
-- sed -n -e '1,100{/ I /{x;/import/!{s/^/import/;h;p;};x;};}'`
-- if test "X$win32_nmres" = "Ximport" ; then
-- win32_libid_type="x86 archive import"
-- else
-- win32_libid_type="x86 archive static"
-- fi
-+ $SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'`
-+ case $win32_nmres in
-+ import*) win32_libid_type="x86 archive import";;
-+ *) win32_libid_type="x86 archive static";;
-+ esac
- fi
- ;;
-- *DLL*)
-+ *DLL*)
- win32_libid_type="x86 DLL"
- ;;
- *executable*) # but shell scripts are "executable" too...
-@@ -154,9 +217,181 @@
- $echo $win32_libid_type
- }
-
-+
-+# func_infer_tag arg
-+# Infer tagged configuration to use if any are available and
-+# if one wasn't chosen via the "--tag" command line option.
-+# Only attempt this if the compiler in the base compile
-+# command doesn't match the default compiler.
-+# arg is usually of the form 'gcc ...'
-+func_infer_tag ()
-+{
-+ if test -n "$available_tags" && test -z "$tagname"; then
-+ CC_quoted=
-+ for arg in $CC; do
-+ case $arg in
-+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
-+ arg="\"$arg\""
-+ ;;
-+ esac
-+ CC_quoted="$CC_quoted $arg"
-+ done
-+ case $@ in
-+ # Blanks in the command may have been stripped by the calling shell,
-+ # but not from the CC environment variable when configure was run.
-+ " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
-+ # Blanks at the start of $base_compile will cause this to fail
-+ # if we don't check for them as well.
-+ *)
-+ for z in $available_tags; do
-+ if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
-+ # Evaluate the configuration.
-+ eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
-+ CC_quoted=
-+ for arg in $CC; do
-+ # Double-quote args containing other shell metacharacters.
-+ case $arg in
-+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
-+ arg="\"$arg\""
-+ ;;
-+ esac
-+ CC_quoted="$CC_quoted $arg"
-+ done
-+ case "$@ " in
-+ " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
-+ # The compiler in the base compile command matches
-+ # the one in the tagged configuration.
-+ # Assume this is the tagged configuration we want.
-+ tagname=$z
-+ break
-+ ;;
-+ esac
-+ fi
-+ done
-+ # If $tagname still isn't set, then no tagged configuration
-+ # was found and let the user know that the "--tag" command
-+ # line option must be used.
-+ if test -z "$tagname"; then
-+ $echo "$modename: unable to infer tagged configuration"
-+ $echo "$modename: specify a tag with \`--tag'" 1>&2
-+ exit $EXIT_FAILURE
-+# else
-+# $echo "$modename: using $tagname tagged configuration"
-+ fi
-+ ;;
-+ esac
-+ fi
-+}
-+
-+
-+# func_extract_an_archive dir oldlib
-+func_extract_an_archive ()
-+{
-+ f_ex_an_ar_dir="$1"; shift
-+ f_ex_an_ar_oldlib="$1"
-+
-+ $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
-+ $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
-+ if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
-+ :
-+ else
-+ $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
-+ exit $EXIT_FAILURE
-+ fi
-+}
-+
-+# func_extract_archives gentop oldlib ...
-+func_extract_archives ()
-+{
-+ my_gentop="$1"; shift
-+ my_oldlibs=${1+"$@"}
-+ my_oldobjs=""
-+ my_xlib=""
-+ my_xabs=""
-+ my_xdir=""
-+ my_status=""
-+
-+ $show "${rm}r $my_gentop"
-+ $run ${rm}r "$my_gentop"
-+ $show "$mkdir $my_gentop"
-+ $run $mkdir "$my_gentop"
-+ my_status=$?
-+ if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
-+ exit $my_status
-+ fi
-+
-+ for my_xlib in $my_oldlibs; do
-+ # Extract the objects.
-+ case $my_xlib in
-+ [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
-+ *) my_xabs=`pwd`"/$my_xlib" ;;
-+ esac
-+ my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
-+ my_xdir="$my_gentop/$my_xlib"
-+
-+ $show "${rm}r $my_xdir"
-+ $run ${rm}r "$my_xdir"
-+ $show "$mkdir $my_xdir"
-+ $run $mkdir "$my_xdir"
-+ exit_status=$?
-+ if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then
-+ exit $exit_status
-+ fi
-+ case $host in
-+ *-darwin*)
-+ $show "Extracting $my_xabs"
-+ # Do not bother doing anything if just a dry run
-+ if test -z "$run"; then
-+ darwin_orig_dir=`pwd`
-+ cd $my_xdir || exit $?
-+ darwin_archive=$my_xabs
-+ darwin_curdir=`pwd`
-+ darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
-+ darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
-+ if test -n "$darwin_arches"; then
-+ darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
-+ darwin_arch=
-+ $show "$darwin_base_archive has multiple architectures $darwin_arches"
-+ for darwin_arch in $darwin_arches ; do
-+ mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
-+ lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
-+ cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
-+ func_extract_an_archive "`pwd`" "${darwin_base_archive}"
-+ cd "$darwin_curdir"
-+ $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
-+ done # $darwin_arches
-+ ## Okay now we have a bunch of thin objects, gotta fatten them up :)
-+ darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
-+ darwin_file=
-+ darwin_files=
-+ for darwin_file in $darwin_filelist; do
-+ darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
-+ lipo -create -output "$darwin_file" $darwin_files
-+ done # $darwin_filelist
-+ ${rm}r unfat-$$
-+ cd "$darwin_orig_dir"
-+ else
-+ cd "$darwin_orig_dir"
-+ func_extract_an_archive "$my_xdir" "$my_xabs"
-+ fi # $darwin_arches
-+ fi # $run
-+ ;;
-+ *)
-+ func_extract_an_archive "$my_xdir" "$my_xabs"
-+ ;;
-+ esac
-+ my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
-+ done
-+ func_extract_archives_result="$my_oldobjs"
-+}
- # End of Shell function definitions
- #####################################
-
-+# Darwin sucks
-+eval std_shrext=\"$shrext_cmds\"
-+
-+disable_libs=no
-+
- # Parse our command line options once, thoroughly.
- while test "$#" -gt 0
- do
-@@ -176,12 +411,13 @@
- ;;
- tag)
- tagname="$arg"
-+ preserve_args="${preserve_args}=$arg"
-
- # Check whether tagname contains only valid characters
- case $tagname in
- *[!-_A-Za-z0-9,/]*)
- $echo "$progname: invalid tag name: $tagname" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- ;;
- esac
-
-@@ -191,10 +427,10 @@
- # not specially marked.
- ;;
- *)
-- if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$0" > /dev/null; then
-+ if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
- taglist="$taglist $tagname"
- # Evaluate the configuration.
-- eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $0`"
-+ eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
- else
- $echo "$progname: ignoring unknown tag $tagname" 1>&2
- fi
-@@ -220,24 +456,25 @@
- --version)
- $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
- $echo
-- $echo "Copyright (C) 2003 Free Software Foundation, Inc."
-+ $echo "Copyright (C) 2005 Free Software Foundation, Inc."
- $echo "This is free software; see the source for copying conditions. There is NO"
- $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-- exit 0
-+ exit $?
- ;;
-
- --config)
-- ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0
-+ ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
- # Now print the configurations for the tags.
- for tagname in $taglist; do
-- ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$0"
-+ ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
- done
-- exit 0
-+ exit $?
- ;;
-
- --debug)
- $echo "$progname: enabling shell trace mode"
- set -x
-+ preserve_args="$preserve_args $arg"
- ;;
-
- --dry-run | -n)
-@@ -256,7 +493,7 @@
- else
- $echo "disable static libraries"
- fi
-- exit 0
-+ exit $?
- ;;
-
- --finish) mode="finish" ;;
-@@ -268,13 +505,19 @@
-
- --quiet | --silent)
- show=:
-+ preserve_args="$preserve_args $arg"
- ;;
-
-- --tag) prevopt="--tag" prev=tag ;;
-+ --tag)
-+ prevopt="--tag"
-+ prev=tag
-+ preserve_args="$preserve_args --tag"
-+ ;;
- --tag=*)
- set tag "$optarg" ${1+"$@"}
- shift
- prev=tag
-+ preserve_args="$preserve_args --tag"
- ;;
-
- -dlopen)
-@@ -285,7 +528,7 @@
- -*)
- $echo "$modename: unrecognized option \`$arg'" 1>&2
- $echo "$help" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- ;;
-
- *)
-@@ -298,9 +541,21 @@
- if test -n "$prevopt"; then
- $echo "$modename: option \`$prevopt' requires an argument" 1>&2
- $echo "$help" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- fi
-
-+case $disable_libs in
-+no)
-+ ;;
-+shared)
-+ build_libtool_libs=no
-+ build_old_libs=yes
-+ ;;
-+static)
-+ build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
-+ ;;
-+esac
-+
- # If this variable is set in any of the actions, the command in it
- # will be execed at the end. This prevents here-documents from being
- # left over by shells.
-@@ -311,7 +566,7 @@
- # Infer the operation mode.
- if test -z "$mode"; then
- $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
-- $echo "*** Future versions of Libtool will require -mode=MODE be specified." 1>&2
-+ $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
- case $nonopt in
- *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
- mode=link
-@@ -354,7 +609,7 @@
- if test -n "$execute_dlfiles" && test "$mode" != execute; then
- $echo "$modename: unrecognized option \`-dlopen'" 1>&2
- $echo "$help" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- fi
-
- # Change the help message to a mode-specific one.
-@@ -369,13 +624,15 @@
- # Get the compilation command and the source file.
- base_compile=
- srcfile="$nonopt" # always keep a non-empty value in "srcfile"
-+ suppress_opt=yes
- suppress_output=
- arg_mode=normal
- libobj=
-+ later=
-
- for arg
- do
-- case "$arg_mode" in
-+ case $arg_mode in
- arg )
- # do not "continue". Instead, add this to base_compile
- lastarg="$arg"
-@@ -394,24 +651,19 @@
- -o)
- if test -n "$libobj" ; then
- $echo "$modename: you cannot specify \`-o' more than once" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- fi
- arg_mode=target
- continue
- ;;
-
-- -static)
-- build_old_libs=yes
-+ -static | -prefer-pic | -prefer-non-pic)
-+ later="$later $arg"
- continue
- ;;
-
-- -prefer-pic)
-- pic_mode=yes
-- continue
-- ;;
--
-- -prefer-non-pic)
-- pic_mode=no
-+ -no-suppress)
-+ suppress_opt=no
- continue
- ;;
-
-@@ -424,7 +676,7 @@
- args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
- lastarg=
- save_ifs="$IFS"; IFS=','
-- for arg in $args; do
-+ for arg in $args; do
- IFS="$save_ifs"
-
- # Double-quote args containing other shell metacharacters.
-@@ -462,7 +714,10 @@
- case $lastarg in
- # Double-quote args containing other shell metacharacters.
- # Many Bourne shells cannot handle close brackets correctly
-- # in scan sets, so we specify it separately.
-+ # in scan sets, and some SunOS ksh mistreat backslash-escaping
-+ # in scan sets (worked around with variable expansion),
-+ # and furthermore cannot handle '|' '&' '(' ')' in scan sets
-+ # at all, so we specify them separately.
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
- lastarg="\"$lastarg\""
- ;;
-@@ -474,11 +729,11 @@
- case $arg_mode in
- arg)
- $echo "$modename: you must specify an argument for -Xcompile"
-- exit 1
-+ exit $EXIT_FAILURE
- ;;
- target)
- $echo "$modename: you must specify a target with \`-o'" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- ;;
- *)
- # Get the name of the library object.
-@@ -511,51 +766,39 @@
- *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
- *)
- $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- ;;
- esac
-
-- # Infer tagged configuration to use if any are available and
-- # if one wasn't chosen via the "--tag" command line option.
-- # Only attempt this if the compiler in the base compile
-- # command doesn't match the default compiler.
-- if test -n "$available_tags" && test -z "$tagname"; then
-- case $base_compile in
-- # Blanks in the command may have been stripped by the calling shell,
-- # but not from the CC environment variable when configure was run.
-- " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "*) ;;
-- # Blanks at the start of $base_compile will cause this to fail
-- # if we don't check for them as well.
-- *)
-- for z in $available_tags; do
-- if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then
-- # Evaluate the configuration.
-- eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`"
-- case "$base_compile " in
-- "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*)
-- # The compiler in the base compile command matches
-- # the one in the tagged configuration.
-- # Assume this is the tagged configuration we want.
-- tagname=$z
-- break
-- ;;
-- esac
-- fi
-- done
-- # If $tagname still isn't set, then no tagged configuration
-- # was found and let the user know that the "--tag" command
-- # line option must be used.
-- if test -z "$tagname"; then
-- $echo "$modename: unable to infer tagged configuration"
-- $echo "$modename: specify a tag with \`--tag'" 1>&2
-- exit 1
--# else
--# $echo "$modename: using $tagname tagged configuration"
-- fi
-+ func_infer_tag $base_compile
-+
-+ for arg in $later; do
-+ case $arg in
-+ -static)
-+ build_old_libs=yes
-+ continue
-+ ;;
-+
-+ -prefer-pic)
-+ pic_mode=yes
-+ continue
-+ ;;
-+
-+ -prefer-non-pic)
-+ pic_mode=no
-+ continue
- ;;
- esac
-- fi
-+ done
-
-+ qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
-+ case $qlibobj in
-+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
-+ qlibobj="\"$qlibobj\"" ;;
-+ esac
-+ test "X$libobj" != "X$qlibobj" \
-+ && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \
-+ && $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
- objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
- xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
- if test "X$xdir" = "X$obj"; then
-@@ -568,7 +811,7 @@
- if test -z "$base_compile"; then
- $echo "$modename: you must specify a compilation command" 1>&2
- $echo "$help" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- fi
-
- # Delete any leftover library objects.
-@@ -579,7 +822,7 @@
- fi
-
- $run $rm $removelist
-- trap "$run $rm $removelist; exit 1" 1 2 15
-+ trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
-
- # On Cygwin there's no "real" PIC flag so we must build both object types
- case $host_os in
-@@ -598,7 +841,7 @@
- output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
- lockfile="$output_obj.lock"
- removelist="$removelist $output_obj $lockfile"
-- trap "$run $rm $removelist; exit 1" 1 2 15
-+ trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
- else
- output_obj=
- need_locks=no
-@@ -608,7 +851,7 @@
- # Lock this critical section if it is needed
- # We use this script file to make the link, it avoids creating a new file
- if test "$need_locks" = yes; then
-- until $run ln "$0" "$lockfile" 2>/dev/null; do
-+ until $run ln "$progpath" "$lockfile" 2>/dev/null; do
- $show "Waiting for $lockfile to be removed"
- sleep 2
- done
-@@ -626,14 +869,19 @@
- compiler."
-
- $run $rm $removelist
-- exit 1
-+ exit $EXIT_FAILURE
- fi
-- $echo $srcfile > "$lockfile"
-+ $echo "$srcfile" > "$lockfile"
- fi
-
- if test -n "$fix_srcfile_path"; then
- eval srcfile=\"$fix_srcfile_path\"
- fi
-+ qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
-+ case $qsrcfile in
-+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
-+ qsrcfile="\"$qsrcfile\"" ;;
-+ esac
-
- $run $rm "$libobj" "${libobj}T"
-
-@@ -655,18 +903,18 @@
- fbsd_hideous_sh_bug=$base_compile
-
- if test "$pic_mode" != no; then
-- command="$base_compile $srcfile $pic_flag"
-+ command="$base_compile $qsrcfile $pic_flag"
- else
- # Don't build PIC code
-- command="$base_compile $srcfile"
-+ command="$base_compile $qsrcfile"
- fi
-
- if test ! -d "${xdir}$objdir"; then
- $show "$mkdir ${xdir}$objdir"
- $run $mkdir ${xdir}$objdir
-- status=$?
-- if test "$status" -ne 0 && test ! -d "${xdir}$objdir"; then
-- exit $status
-+ exit_status=$?
-+ if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then
-+ exit $exit_status
- fi
- fi
-
-@@ -681,7 +929,7 @@
- if $run eval "$command"; then :
- else
- test -n "$output_obj" && $run $rm $removelist
-- exit 1
-+ exit $EXIT_FAILURE
- fi
-
- if test "$need_locks" = warn &&
-@@ -701,7 +949,7 @@
- compiler."
-
- $run $rm $removelist
-- exit 1
-+ exit $EXIT_FAILURE
- fi
-
- # Just move the object if needed, then go on to compile the next one
-@@ -722,7 +970,9 @@
- EOF
-
- # Allow error messages only from the first compilation.
-- suppress_output=' >/dev/null 2>&1'
-+ if test "$suppress_opt" = yes; then
-+ suppress_output=' >/dev/null 2>&1'
-+ fi
- else
- # No PIC object so indicate it doesn't exist in the libtool
- # object file.
-@@ -736,9 +986,9 @@
- if test "$build_old_libs" = yes; then
- if test "$pic_mode" != yes; then
- # Don't build PIC code
-- command="$base_compile $srcfile"
-+ command="$base_compile $qsrcfile"
- else
-- command="$base_compile $srcfile $pic_flag"
-+ command="$base_compile $qsrcfile $pic_flag"
- fi
- if test "$compiler_c_o" = yes; then
- command="$command -o $obj"
-@@ -751,7 +1001,7 @@
- if $run eval "$command"; then :
- else
- $run $rm $removelist
-- exit 1
-+ exit $EXIT_FAILURE
- fi
-
- if test "$need_locks" = warn &&
-@@ -771,7 +1021,7 @@
- compiler."
-
- $run $rm $removelist
-- exit 1
-+ exit $EXIT_FAILURE
- fi
-
- # Just move the object if needed
-@@ -809,7 +1059,7 @@
- $run $rm "$lockfile"
- fi
-
-- exit 0
-+ exit $EXIT_SUCCESS
- ;;
-
- # libtool link mode
-@@ -835,7 +1085,7 @@
- ;;
- esac
- libtool_args="$nonopt"
-- base_compile="$nonopt"
-+ base_compile="$nonopt $@"
- compile_command="$nonopt"
- finalize_command="$nonopt"
-
-@@ -847,7 +1097,6 @@
- old_convenience=
- deplibs=
- old_deplibs=
-- add_flags=
- compiler_flags=
- linker_flags=
- dllsearchpath=
-@@ -868,6 +1117,8 @@
- no_install=no
- objs=
- non_pic_objects=
-+ notinst_path= # paths that contain not-installed libtool libraries
-+ precious_files_regex=
- prefer_static_libs=no
- preload=no
- prev=
-@@ -881,6 +1132,8 @@
- vinfo=
- vinfo_number=no
-
-+ func_infer_tag $base_compile
-+
- # We need to know -static, to get the right output filenames.
- for arg
- do
-@@ -893,14 +1146,15 @@
- if test -n "$link_static_flag"; then
- dlopen_self=$dlopen_self_static
- fi
-+ prefer_static_libs=yes
- else
- if test -z "$pic_flag" && test -n "$link_static_flag"; then
- dlopen_self=$dlopen_self_static
- fi
-+ prefer_static_libs=built
- fi
- build_libtool_libs=no
- build_old_libs=yes
-- prefer_static_libs=yes
- break
- ;;
- esac
-@@ -912,7 +1166,6 @@
- # Go through the arguments, transforming them on the way.
- while test "$#" -gt 0; do
- arg="$1"
-- base_compile="$base_compile $arg"
- shift
- case $arg in
- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
-@@ -976,7 +1229,7 @@
- export_symbols="$arg"
- if test ! -f "$arg"; then
- $echo "$modename: symbol file \`$arg' does not exist"
-- exit 1
-+ exit $EXIT_FAILURE
- fi
- prev=
- continue
-@@ -991,6 +1244,11 @@
- prev=
- continue
- ;;
-+ precious_regex)
-+ precious_files_regex="$arg"
-+ prev=
-+ continue
-+ ;;
- release)
- release="-$arg"
- prev=
-@@ -1023,7 +1281,7 @@
- test "$pic_object" = none && \
- test "$non_pic_object" = none; then
- $echo "$modename: cannot find name of object for \`$arg'" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- fi
-
- # Extract subdirectory from the argument.
-@@ -1071,12 +1329,17 @@
- if test -z "$pic_object" || test "$pic_object" = none ; then
- arg="$non_pic_object"
- fi
-+ else
-+ # If the PIC object exists, use it instead.
-+ # $xdir was prepended to $pic_object above.
-+ non_pic_object="$pic_object"
-+ non_pic_objects="$non_pic_objects $non_pic_object"
- fi
- else
- # Only an error if not doing a dry-run.
- if test -z "$run"; then
- $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- else
- # Dry-run case.
-
-@@ -1097,7 +1360,7 @@
- done
- else
- $echo "$modename: link input file \`$save_arg' does not exist"
-- exit 1
-+ exit $EXIT_FAILURE
- fi
- arg=$save_arg
- prev=
-@@ -1109,7 +1372,7 @@
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- *)
- $echo "$modename: only absolute run-paths are allowed" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- ;;
- esac
- if test "$prev" = rpath; then
-@@ -1149,16 +1412,15 @@
- finalize_command="$finalize_command $qarg"
- continue
- ;;
-- framework)
-- case $host in
-- *-*-darwin*)
-- case "$deplibs " in
-- *" $qarg.ltframework "*) ;;
-- *) deplibs="$deplibs $qarg.ltframework" # this is fixed later
-- ;;
-- esac
-- ;;
-- esac
-+ shrext)
-+ shrext_cmds="$arg"
-+ prev=
-+ continue
-+ ;;
-+ darwin_framework|darwin_framework_skip)
-+ test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg"
-+ compile_command="$compile_command $arg"
-+ finalize_command="$finalize_command $arg"
- prev=
- continue
- ;;
-@@ -1210,7 +1472,7 @@
- -export-symbols | -export-symbols-regex)
- if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
- $echo "$modename: more than one -exported-symbols argument is not allowed"
-- exit 1
-+ exit $EXIT_FAILURE
- fi
- if test "X$arg" = "X-export-symbols"; then
- prev=expsyms
-@@ -1220,6 +1482,18 @@
- continue
- ;;
-
-+ -framework|-arch|-isysroot)
-+ case " $CC " in
-+ *" ${arg} ${1} "* | *" ${arg} ${1} "*)
-+ prev=darwin_framework_skip ;;
-+ *) compiler_flags="$compiler_flags $arg"
-+ prev=darwin_framework ;;
-+ esac
-+ compile_command="$compile_command $arg"
-+ finalize_command="$finalize_command $arg"
-+ continue
-+ ;;
-+
- -inst-prefix-dir)
- prev=inst_prefix
- continue
-@@ -1246,7 +1520,8 @@
- absdir=`cd "$dir" && pwd`
- if test -z "$absdir"; then
- $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
-- exit 1
-+ absdir="$dir"
-+ notinst_path="$notinst_path $dir"
- fi
- dir="$absdir"
- ;;
-@@ -1260,10 +1535,15 @@
- esac
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-+ testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'`
- case :$dllsearchpath: in
- *":$dir:"*) ;;
- *) dllsearchpath="$dllsearchpath:$dir";;
- esac
-+ case :$dllsearchpath: in
-+ *":$testbindir:"*) ;;
-+ *) dllsearchpath="$dllsearchpath:$testbindir";;
-+ esac
- ;;
- esac
- continue
-@@ -1272,26 +1552,35 @@
- -l*)
- if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
- case $host in
-- *-*-cygwin* | *-*-pw32* | *-*-beos*)
-+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
- # These systems don't actually have a C or math library (as such)
- continue
- ;;
-- *-*-mingw* | *-*-os2*)
-+ *-*-os2*)
- # These systems don't actually have a C library (as such)
- test "X$arg" = "X-lc" && continue
- ;;
-- *-*-openbsd* | *-*-freebsd*)
-+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
- # Do not include libc due to us having libc/libc_r.
- test "X$arg" = "X-lc" && continue
- ;;
- *-*-rhapsody* | *-*-darwin1.[012])
- # Rhapsody C and math libraries are in the System framework
-- deplibs="$deplibs System.ltframework"
-+ deplibs="$deplibs -framework System"
- continue
-+ ;;
-+ *-*-sco3.2v5* | *-*-sco5v6*)
-+ # Causes problems with __ctype
-+ test "X$arg" = "X-lc" && continue
-+ ;;
-+ *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
-+ # Compiler inserts libc in the correct place for threads to work
-+ test "X$arg" = "X-lc" && continue
-+ ;;
- esac
- elif test "X$arg" = "X-lc_r"; then
- case $host in
-- *-*-openbsd*)
-+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
- # Do not include libc_r directly, use -pthread flag.
- continue
- ;;
-@@ -1301,18 +1590,41 @@
- continue
- ;;
-
-+ # Tru64 UNIX uses -model [arg] to determine the layout of C++
-+ # classes, name mangling, and exception handling.
-+ -model)
-+ compile_command="$compile_command $arg"
-+ compiler_flags="$compiler_flags $arg"
-+ finalize_command="$finalize_command $arg"
-+ prev=xcompiler
-+ continue
-+ ;;
-+
-+ -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
-+ compiler_flags="$compiler_flags $arg"
-+ compile_command="$compile_command $arg"
-+ finalize_command="$finalize_command $arg"
-+ continue
-+ ;;
-+
- -module)
- module=yes
- continue
- ;;
-
-- # gcc -m* arguments should be passed to the linker via $compiler_flags
-- # in order to pass architecture information to the linker
-- # (e.g. 32 vs 64-bit). This may also be accomplished via -Wl,-mfoo
-- # but this is not reliable with gcc because gcc may use -mfoo to
-- # select a different linker, different libraries, etc, while
-- # -Wl,-mfoo simply passes -mfoo to the linker.
-- -m*)
-+ # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
-+ # -r[0-9][0-9]* specifies the processor on the SGI compiler
-+ # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
-+ # +DA*, +DD* enable 64-bit mode on the HP compiler
-+ # -q* pass through compiler args for the IBM compiler
-+ # -m* pass through architecture-specific compiler args for GCC
-+ # -m*, -t[45]*, -txscale* pass through architecture-specific
-+ # compiler args for GCC
-+ # -pg pass through profiling flag for GCC
-+ # @file GCC response files
-+ -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \
-+ -t[45]*|-txscale*|@*)
-+
- # Unknown arguments in both finalize_command and compile_command need
- # to be aesthetically quoted because they are evaled later.
- arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-@@ -1323,9 +1635,7 @@
- esac
- compile_command="$compile_command $arg"
- finalize_command="$finalize_command $arg"
-- if test "$with_gcc" = "yes" ; then
-- compiler_flags="$compiler_flags $arg"
-- fi
-+ compiler_flags="$compiler_flags $arg"
- continue
- ;;
-
-@@ -1365,6 +1675,11 @@
-
- -o) prev=output ;;
-
-+ -precious-files-regex)
-+ prev=precious_regex
-+ continue
-+ ;;
-+
- -release)
- prev=release
- continue
-@@ -1387,7 +1702,7 @@
- [\\/]* | [A-Za-z]:[\\/]*) ;;
- *)
- $echo "$modename: only absolute run-paths are allowed" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- ;;
- esac
- case "$xrpath " in
-@@ -1473,11 +1788,6 @@
- continue
- ;;
-
-- -framework)
-- prev=framework
-- continue
-- ;;
--
- # Some other compiler flag.
- -* | +*)
- # Unknown arguments in both finalize_command and compile_command need
-@@ -1488,7 +1798,6 @@
- arg="\"$arg\""
- ;;
- esac
-- add_flags="$add_flags $arg"
- ;;
-
- *.$objext)
-@@ -1516,7 +1825,7 @@
- test "$pic_object" = none && \
- test "$non_pic_object" = none; then
- $echo "$modename: cannot find name of object for \`$arg'" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- fi
-
- # Extract subdirectory from the argument.
-@@ -1564,12 +1873,17 @@
- if test -z "$pic_object" || test "$pic_object" = none ; then
- arg="$non_pic_object"
- fi
-+ else
-+ # If the PIC object exists, use it instead.
-+ # $xdir was prepended to $pic_object above.
-+ non_pic_object="$pic_object"
-+ non_pic_objects="$non_pic_objects $non_pic_object"
- fi
- else
- # Only an error if not doing a dry-run.
- if test -z "$run"; then
- $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- else
- # Dry-run case.
-
-@@ -1623,7 +1937,6 @@
- arg="\"$arg\""
- ;;
- esac
-- add_flags="$add_flags $arg"
- ;;
- esac # arg
-
-@@ -1637,48 +1950,7 @@
- if test -n "$prev"; then
- $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
- $echo "$help" 1>&2
-- exit 1
-- fi
--
-- # Infer tagged configuration to use if any are available and
-- # if one wasn't chosen via the "--tag" command line option.
-- # Only attempt this if the compiler in the base link
-- # command doesn't match the default compiler.
-- if test -n "$available_tags" && test -z "$tagname"; then
-- case $base_compile in
-- # Blanks in the command may have been stripped by the calling shell,
-- # but not from the CC environment variable when configure was run.
-- "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*) ;;
-- # Blanks at the start of $base_compile will cause this to fail
-- # if we don't check for them as well.
-- *)
-- for z in $available_tags; do
-- if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then
-- # Evaluate the configuration.
-- eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`"
-- case $base_compile in
-- "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*)
-- # The compiler in $compile_command matches
-- # the one in the tagged configuration.
-- # Assume this is the tagged configuration we want.
-- tagname=$z
-- break
-- ;;
-- esac
-- fi
-- done
-- # If $tagname still isn't set, then no tagged configuration
-- # was found and let the user know that the "--tag" command
-- # line option must be used.
-- if test -z "$tagname"; then
-- $echo "$modename: unable to infer tagged configuration"
-- $echo "$modename: specify a tag with \`--tag'" 1>&2
-- exit 1
--# else
--# $echo "$modename: using $tagname tagged configuration"
-- fi
-- ;;
-- esac
-+ exit $EXIT_FAILURE
- fi
-
- if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
-@@ -1711,9 +1983,9 @@
- if test ! -d "$output_objdir"; then
- $show "$mkdir $output_objdir"
- $run $mkdir $output_objdir
-- status=$?
-- if test "$status" -ne 0 && test ! -d "$output_objdir"; then
-- exit $status
-+ exit_status=$?
-+ if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then
-+ exit $exit_status
- fi
- fi
-
-@@ -1722,7 +1994,7 @@
- "")
- $echo "$modename: you must specify an output file" 1>&2
- $echo "$help" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- ;;
- *.$libext) linkmode=oldlib ;;
- *.lo | *.$objext) linkmode=obj ;;
-@@ -1732,7 +2004,7 @@
-
- case $host in
- *cygwin* | *mingw* | *pw32*)
-- # don't eliminate duplcations in $postdeps and $predeps
-+ # don't eliminate duplications in $postdeps and $predeps
- duplicate_compiler_generated_deps=yes
- ;;
- *)
-@@ -1776,7 +2048,6 @@
- newlib_search_path=
- need_relink=no # whether we're linking any uninstalled libtool libraries
- notinst_deplibs= # not-installed libtool libraries
-- notinst_path= # paths that contain not-installed libtool libraries
- case $linkmode in
- lib)
- passes="conv link"
-@@ -1785,7 +2056,7 @@
- *.la) ;;
- *)
- $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- ;;
- esac
- done
-@@ -1823,18 +2094,23 @@
- lib=
- found=no
- case $deplib in
-+ -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
-+ if test "$linkmode,$pass" = "prog,link"; then
-+ compile_deplibs="$deplib $compile_deplibs"
-+ finalize_deplibs="$deplib $finalize_deplibs"
-+ else
-+ compiler_flags="$compiler_flags $deplib"
-+ fi
-+ continue
-+ ;;
- -l*)
- if test "$linkmode" != lib && test "$linkmode" != prog; then
- $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
- continue
- fi
-- if test "$pass" = conv && test "$allow_undefined" = yes; then
-- deplibs="$deplib $deplibs"
-- continue
-- fi
- name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
- for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
-- for search_ext in .la $shrext .so .a; do
-+ for search_ext in .la $std_shrext .so .a; do
- # Search the libtool library
- lib="$searchdir/lib${name}${search_ext}"
- if test -f "$lib"; then
-@@ -1895,18 +2171,6 @@
- fi
- fi
- ;; # -l
-- *.ltframework)
-- if test "$linkmode,$pass" = "prog,link"; then
-- compile_deplibs="$deplib $compile_deplibs"
-- finalize_deplibs="$deplib $finalize_deplibs"
-- else
-- deplibs="$deplib $deplibs"
-- if test "$linkmode" = lib ; then
-- newdependency_libs="$deplib $newdependency_libs"
-- fi
-- fi
-- continue
-- ;;
- -L*)
- case $linkmode in
- lib)
-@@ -1922,11 +2186,11 @@
- fi
- if test "$pass" = scan; then
- deplibs="$deplib $deplibs"
-- newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
- else
- compile_deplibs="$deplib $compile_deplibs"
- finalize_deplibs="$deplib $finalize_deplibs"
- fi
-+ newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
- ;;
- *)
- $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
-@@ -1954,7 +2218,22 @@
- fi
- case $linkmode in
- lib)
-- if test "$deplibs_check_method" != pass_all; then
-+ valid_a_lib=no
-+ case $deplibs_check_method in
-+ match_pattern*)
-+ set dummy $deplibs_check_method
-+ match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
-+ if eval $echo \"$deplib\" 2>/dev/null \
-+ | $SED 10q \
-+ | $EGREP "$match_pattern_regex" > /dev/null; then
-+ valid_a_lib=yes
-+ fi
-+ ;;
-+ pass_all)
-+ valid_a_lib=yes
-+ ;;
-+ esac
-+ if test "$valid_a_lib" != yes; then
- $echo
- $echo "*** Warning: Trying to link with static lib archive $deplib."
- $echo "*** I have the capability to make that library automatically link in when"
-@@ -2004,15 +2283,15 @@
- esac # case $deplib
- if test "$found" = yes || test -f "$lib"; then :
- else
-- $echo "$modename: cannot find the library \`$lib'" 1>&2
-- exit 1
-+ $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2
-+ exit $EXIT_FAILURE
- fi
-
- # Check to see that this really is a libtool archive.
- if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
- else
- $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- fi
-
- ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
-@@ -2028,6 +2307,8 @@
- # it will not redefine variables installed, or shouldnotlink
- installed=yes
- shouldnotlink=no
-+ avoidtemprpath=
-+
-
- # Read the .la file
- case $lib in
-@@ -2035,13 +2316,6 @@
- *) . ./$lib ;;
- esac
-
-- case $host in
-- *-*-darwin*)
-- # Convert "-framework foo" to "foo.ltframework" in dependency_libs
-- test -n "$dependency_libs" && dependency_libs=`$echo "X$dependency_libs" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'`
-- ;;
-- esac
--
- if test "$linkmode,$pass" = "lib,link" ||
- test "$linkmode,$pass" = "prog,scan" ||
- { test "$linkmode" != prog && test "$linkmode" != lib; }; then
-@@ -2050,35 +2324,34 @@
- fi
-
- if test "$pass" = conv; then
-- # Only check for convenience libraries
-- deplibs="$lib $deplibs"
-- tmp_libs=
-- for deplib in $dependency_libs; do
-- #echo "Adding $deplib to \$deplibs"
-- deplibs="$deplib $deplibs"
-- if test "X$duplicate_deps" = "Xyes" ; then
-- case "$tmp_libs " in
-- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-- esac
-- fi
-- tmp_libs="$tmp_libs $deplib"
-- done
-+ # Only check for convenience libraries
-+ deplibs="$lib $deplibs"
- if test -z "$libdir"; then
- if test -z "$old_library"; then
- $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- fi
- # It is a libtool convenience library, so add in its objects.
- convenience="$convenience $ladir/$objdir/$old_library"
- old_convenience="$old_convenience $ladir/$objdir/$old_library"
-+ tmp_libs=
-+ for deplib in $dependency_libs; do
-+ deplibs="$deplib $deplibs"
-+ if test "X$duplicate_deps" = "Xyes" ; then
-+ case "$tmp_libs " in
-+ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-+ esac
-+ fi
-+ tmp_libs="$tmp_libs $deplib"
-+ done
- elif test "$linkmode" != prog && test "$linkmode" != lib; then
- $echo "$modename: \`$lib' is not a convenience library" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- fi
- continue
- fi # $pass = conv
-
--
-+
- # Get the name of the library we link against.
- linklib=
- for l in $old_library $library_names; do
-@@ -2086,16 +2359,18 @@
- done
- if test -z "$linklib"; then
- $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- fi
-
- # This library was specified with -dlopen.
- if test "$pass" = dlopen; then
- if test -z "$libdir"; then
- $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- fi
-- if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
-+ if test -z "$dlname" ||
-+ test "$dlopen_support" != yes ||
-+ test "$build_libtool_libs" = no; then
- # If there is no dlname, no dlopen support or we're linking
- # statically, we need to preload. We also need to preload any
- # dependent libraries so libltdl's deplib preloader doesn't
-@@ -2132,11 +2407,19 @@
- dir="$libdir"
- absdir="$libdir"
- fi
-+ test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
- else
-- dir="$ladir/$objdir"
-- absdir="$abs_ladir/$objdir"
-- # Remove this search path later
-- notinst_path="$notinst_path $abs_ladir"
-+ if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
-+ dir="$ladir"
-+ absdir="$abs_ladir"
-+ # Remove this search path later
-+ notinst_path="$notinst_path $abs_ladir"
-+ else
-+ dir="$ladir/$objdir"
-+ absdir="$abs_ladir/$objdir"
-+ # Remove this search path later
-+ notinst_path="$notinst_path $abs_ladir"
-+ fi
- fi # $installed = yes
- name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
-
-@@ -2144,7 +2427,7 @@
- if test "$pass" = dlpreopen; then
- if test -z "$libdir"; then
- $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- fi
- # Prefer using a static library (so that no silly _DYNAMIC symbols
- # are required to link).
-@@ -2171,7 +2454,7 @@
- continue
- fi
-
--
-+
- if test "$linkmode" = prog && test "$pass" != link; then
- newlib_search_path="$newlib_search_path $ladir"
- deplibs="$lib $deplibs"
-@@ -2209,12 +2492,12 @@
- if test -n "$library_names" &&
- { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
- # We need to hardcode the library path
-- if test -n "$shlibpath_var"; then
-+ if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
- # Make sure the rpath contains only unique directories.
- case "$temp_rpath " in
- *" $dir "*) ;;
- *" $absdir "*) ;;
-- *) temp_rpath="$temp_rpath $dir" ;;
-+ *) temp_rpath="$temp_rpath $absdir" ;;
- esac
- fi
-
-@@ -2251,24 +2534,29 @@
- fi
-
- link_static=no # Whether the deplib will be linked statically
-+ use_static_libs=$prefer_static_libs
-+ if test "$use_static_libs" = built && test "$installed" = yes ; then
-+ use_static_libs=no
-+ fi
- if test -n "$library_names" &&
-- { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
-+ { test "$use_static_libs" = no || test -z "$old_library"; }; then
- if test "$installed" = no; then
- notinst_deplibs="$notinst_deplibs $lib"
- need_relink=yes
- fi
- # This is a shared library
--
-- # Warn about portability, can't link against -module's on some systems (darwin)
-- if test "$shouldnotlink" = yes && test "$pass" = link ; then
-+
-+ # Warn about portability, can't link against -module's on
-+ # some systems (darwin)
-+ if test "$shouldnotlink" = yes && test "$pass" = link ; then
- $echo
- if test "$linkmode" = prog; then
- $echo "*** Warning: Linking the executable $output against the loadable module"
- else
- $echo "*** Warning: Linking the shared library $output against the loadable module"
- fi
-- $echo "*** $linklib is not portable!"
-- fi
-+ $echo "*** $linklib is not portable!"
-+ fi
- if test "$linkmode" = lib &&
- test "$hardcode_into_libs" = yes; then
- # Hardcode the library path.
-@@ -2326,9 +2614,10 @@
- else
- $show "extracting exported symbol list from \`$soname'"
- save_ifs="$IFS"; IFS='~'
-- eval cmds=\"$extract_expsyms_cmds\"
-+ cmds=$extract_expsyms_cmds
- for cmd in $cmds; do
- IFS="$save_ifs"
-+ eval cmd=\"$cmd\"
- $show "$cmd"
- $run eval "$cmd" || exit $?
- done
-@@ -2339,9 +2628,10 @@
- if test -f "$output_objdir/$newlib"; then :; else
- $show "generating import library for \`$soname'"
- save_ifs="$IFS"; IFS='~'
-- eval cmds=\"$old_archive_from_expsyms_cmds\"
-+ cmds=$old_archive_from_expsyms_cmds
- for cmd in $cmds; do
- IFS="$save_ifs"
-+ eval cmd=\"$cmd\"
- $show "$cmd"
- $run eval "$cmd" || exit $?
- done
-@@ -2362,11 +2652,15 @@
- if test "$hardcode_direct" = no; then
- add="$dir/$linklib"
- case $host in
-- *-*-sco3.2v5* ) add_dir="-L$dir" ;;
-+ *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
-+ *-*-sysv4*uw2*) add_dir="-L$dir" ;;
-+ *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
-+ *-*-unixware7*) add_dir="-L$dir" ;;
- *-*-darwin* )
-- # if the lib is a module then we can not link against it, someone
-- # is ignoring the new warnings I added
-- if /usr/bin/file -L $add 2> /dev/null | grep "bundle" >/dev/null ; then
-+ # if the lib is a module then we can not link against
-+ # it, someone is ignoring the new warnings I added
-+ if /usr/bin/file -L $add 2> /dev/null |
-+ $EGREP ": [^:]* bundle" >/dev/null ; then
- $echo "** Warning, lib $linklib is a module, not a shared library"
- if test -z "$old_library" ; then
- $echo
-@@ -2374,7 +2668,7 @@
- $echo "** The link will probably fail, sorry"
- else
- add="$dir/$old_library"
-- fi
-+ fi
- fi
- esac
- elif test "$hardcode_minus_L" = no; then
-@@ -2397,9 +2691,9 @@
- add_dir="-L$dir"
- # Try looking first in the location we're being installed to.
- if test -n "$inst_prefix_dir"; then
-- case "$libdir" in
-+ case $libdir in
- [\\/]*)
-- add_dir="-L$inst_prefix_dir$libdir $add_dir"
-+ add_dir="$add_dir -L$inst_prefix_dir$libdir"
- ;;
- esac
- fi
-@@ -2416,7 +2710,7 @@
-
- if test "$lib_linked" != yes; then
- $echo "$modename: configuration error: unsupported hardcode properties"
-- exit 1
-+ exit $EXIT_FAILURE
- fi
-
- if test -n "$add_shlibpath"; then
-@@ -2459,7 +2753,8 @@
- esac
- add="-l$name"
- elif test "$hardcode_automatic" = yes; then
-- if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then
-+ if test -n "$inst_prefix_dir" &&
-+ test -f "$inst_prefix_dir$libdir/$linklib" ; then
- add="$inst_prefix_dir$libdir/$linklib"
- else
- add="$libdir/$linklib"
-@@ -2469,9 +2764,9 @@
- add_dir="-L$libdir"
- # Try looking first in the location we're being installed to.
- if test -n "$inst_prefix_dir"; then
-- case "$libdir" in
-+ case $libdir in
- [\\/]*)
-- add_dir="-L$inst_prefix_dir$libdir $add_dir"
-+ add_dir="$add_dir -L$inst_prefix_dir$libdir"
- ;;
- esac
- fi
-@@ -2530,17 +2825,16 @@
- fi
- fi
- else
-- convenience="$convenience $dir/$old_library"
-- old_convenience="$old_convenience $dir/$old_library"
- deplibs="$dir/$old_library $deplibs"
- link_static=yes
- fi
- fi # link shared/static library?
-
- if test "$linkmode" = lib; then
-- #if test -n "$dependency_libs" &&
-- # { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes ||
-- # test "$link_static" = yes; }; then
-+ if test -n "$dependency_libs" &&
-+ { test "$hardcode_into_libs" != yes ||
-+ test "$build_old_libs" = yes ||
-+ test "$link_static" = yes; }; then
- # Extract -R from dependency_libs
- temp_deplibs=
- for libdir in $dependency_libs; do
-@@ -2554,7 +2848,7 @@
- esac
- done
- dependency_libs="$temp_deplibs"
-- #fi
-+ fi
-
- newlib_search_path="$newlib_search_path $absdir"
- # Link against this library
-@@ -2596,20 +2890,18 @@
- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
- if test -z "$libdir"; then
- $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- fi
- if test "$absdir" != "$libdir"; then
-- # Sure, some shells/systems don't implement the -ef.
-- # Those will have to live with the warning.
-- test "$absdir" -ef "$libdir" > /dev/null 2>&1 ||
-- $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
-+ $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
- fi
- path="$absdir"
- fi
- depdepl=
- case $host in
- *-*-darwin*)
-- # we do not want to link against static libs, but need to link against shared
-+ # we do not want to link against static libs,
-+ # but need to link against shared
- eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
- if test -n "$deplibrary_names" ; then
- for tmp in $deplibrary_names ; do
-@@ -2617,55 +2909,45 @@
- done
- if test -f "$path/$depdepl" ; then
- depdepl="$path/$depdepl"
-- fi
-+ fi
- # do not add paths which are already there
- case " $newlib_search_path " in
- *" $path "*) ;;
- *) newlib_search_path="$newlib_search_path $path";;
- esac
-- path=""
- fi
-+ path=""
- ;;
- *)
-- path="-L$path"
-- ;;
-- esac
--
-+ path="-L$path"
-+ ;;
-+ esac
- ;;
-- -l*)
-+ -l*)
- case $host in
- *-*-darwin*)
-- # Again, we only want to link against shared libraries
-- eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
-- for tmp in $newlib_search_path ; do
-- if test -f "$tmp/lib$tmp_libs.dylib" ; then
-- eval depdepl="$tmp/lib$tmp_libs.dylib"
-- break
-- fi
-- done
-- path=""
-+ # Again, we only want to link against shared libraries
-+ eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
-+ for tmp in $newlib_search_path ; do
-+ if test -f "$tmp/lib$tmp_libs.dylib" ; then
-+ eval depdepl="$tmp/lib$tmp_libs.dylib"
-+ break
-+ fi
-+ done
-+ path=""
- ;;
- *) continue ;;
-- esac
-- ;;
--
-- *.ltframework)
-- case $host in
-- *-*-darwin*)
-- depdepl="$deplib"
-- ;;
- esac
- ;;
--
- *) continue ;;
- esac
- case " $deplibs " in
-- *" $depdepl "*) ;;
-- *) deplibs="$deplibs $depdepl" ;;
-- esac
-- case " $deplibs " in
- *" $path "*) ;;
-- *) deplibs="$deplibs $path" ;;
-+ *) deplibs="$path $deplibs" ;;
-+ esac
-+ case " $deplibs " in
-+ *" $depdepl "*) ;;
-+ *) deplibs="$depdepl $deplibs" ;;
- esac
- done
- fi # link_all_deplibs != no
-@@ -2752,7 +3034,8 @@
- eval $var=\"$tmp_libs\"
- done # for var
- fi
-- # Last step: remove runtime libs from dependency_libs (they stay in deplibs)
-+ # Last step: remove runtime libs from dependency_libs
-+ # (they stay in deplibs)
- tmp_libs=
- for i in $dependency_libs ; do
- case " $predeps $postdeps $compiler_lib_search_path " in
-@@ -2812,19 +3095,19 @@
- case $outputname in
- lib*)
- name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
-- eval shared_ext=\"$shrext\"
-+ eval shared_ext=\"$shrext_cmds\"
- eval libname=\"$libname_spec\"
- ;;
- *)
- if test "$module" = no; then
- $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
- $echo "$help" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- fi
- if test "$need_lib_prefix" != no; then
- # Add the "lib" prefix for modules if required
- name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
-- eval shared_ext=\"$shrext\"
-+ eval shared_ext=\"$shrext_cmds\"
- eval libname=\"$libname_spec\"
- else
- libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
-@@ -2835,7 +3118,7 @@
- if test -n "$objs"; then
- if test "$deplibs_check_method" != pass_all; then
- $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
-- exit 1
-+ exit $EXIT_FAILURE
- else
- $echo
- $echo "*** Warning: Linking the shared library $output against the non-libtool"
-@@ -2883,13 +3166,13 @@
- if test -n "$8"; then
- $echo "$modename: too many parameters to \`-version-info'" 1>&2
- $echo "$help" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- fi
-
- # convert absolute version numbers to libtool ages
- # this retains compatibility with .la files and attempts
- # to make the code below a bit more comprehensible
--
-+
- case $vinfo_number in
- yes)
- number_major="$2"
-@@ -2929,36 +3212,36 @@
-
- # Check that each of the things are valid numbers.
- case $current in
-- 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
-+ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
- *)
-- $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
-+ $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
- $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- ;;
- esac
-
- case $revision in
-- 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
-+ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
- *)
-- $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
-+ $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
- $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- ;;
- esac
-
- case $age in
-- 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
-+ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
- *)
-- $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
-+ $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
- $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- ;;
- esac
-
- if test "$age" -gt "$current"; then
- $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
- $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- fi
-
- # Calculate the version variables.
-@@ -2975,7 +3258,7 @@
- versuffix="$major.$age.$revision"
- # Darwin ld doesn't like 0 for these options...
- minor_current=`expr $current + 1`
-- verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
-+ verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
- ;;
-
- freebsd-aout)
-@@ -3047,7 +3330,7 @@
- *)
- $echo "$modename: unknown library version type \`$version_type'" 1>&2
- $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- ;;
- esac
-
-@@ -3098,9 +3381,15 @@
- tempremovelist=`$echo "$output_objdir/*"`
- for p in $tempremovelist; do
- case $p in
-- *.$objext | *$exeext)
-+ *.$objext)
- ;;
- $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
-+ if test "X$precious_files_regex" != "X"; then
-+ if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
-+ then
-+ continue
-+ fi
-+ fi
- removelist="$removelist $p"
- ;;
- *) ;;
-@@ -3122,9 +3411,9 @@
-
- # Eliminate all temporary directories.
- for path in $notinst_path; do
-- lib_search_path=`$echo "$lib_search_path " | ${SED} -e 's% $path % %g'`
-- deplibs=`$echo "$deplibs " | ${SED} -e 's% -L$path % %g'`
-- dependency_libs=`$echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'`
-+ lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"`
-+ deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"`
-+ dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"`
- done
-
- if test -n "$xrpath"; then
-@@ -3137,7 +3426,7 @@
- *) finalize_rpath="$finalize_rpath $libdir" ;;
- esac
- done
-- if true || test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
-+ if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
- dependency_libs="$temp_xrpath $dependency_libs"
- fi
- fi
-@@ -3170,14 +3459,19 @@
- ;;
- *-*-rhapsody* | *-*-darwin1.[012])
- # Rhapsody C library is in the System framework
-- deplibs="$deplibs System.ltframework"
-+ deplibs="$deplibs -framework System"
- ;;
- *-*-netbsd*)
- # Don't link with libc until the a.out ld.so is fixed.
- ;;
-- *-*-openbsd* | *-*-freebsd*)
-+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
- # Do not include libc due to us having libc/libc_r.
-- test "X$arg" = "X-lc" && continue
-+ ;;
-+ *-*-sco3.2v5* | *-*-sco5v6*)
-+ # Causes problems with __ctype
-+ ;;
-+ *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
-+ # Compiler inserts libc in the correct place for threads to work
- ;;
- *)
- # Add libc to deplibs on all other systems if necessary.
-@@ -3221,11 +3515,11 @@
- int main() { return 0; }
- EOF
- $rm conftest
-- $LTCC -o conftest conftest.c $deplibs
-+ $LTCC $LTCFLAGS -o conftest conftest.c $deplibs
- if test "$?" -eq 0 ; then
- ldd_output=`ldd conftest`
- for i in $deplibs; do
-- name="`expr $i : '-l\(.*\)'`"
-+ name=`expr $i : '-l\(.*\)'`
- # If $name is empty we are operating on a -L argument.
- if test "$name" != "" && test "$name" -ne "0"; then
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-@@ -3262,11 +3556,11 @@
- # Error occurred in the first compile. Let's try to salvage
- # the situation: Compile a separate program for each library.
- for i in $deplibs; do
-- name="`expr $i : '-l\(.*\)'`"
-+ name=`expr $i : '-l\(.*\)'`
- # If $name is empty we are operating on a -L argument.
- if test "$name" != "" && test "$name" != "0"; then
- $rm conftest
-- $LTCC -o conftest conftest.c $i
-+ $LTCC $LTCFLAGS -o conftest conftest.c $i
- # Did it work?
- if test "$?" -eq 0 ; then
- ldd_output=`ldd conftest`
-@@ -3314,7 +3608,7 @@
- set dummy $deplibs_check_method
- file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
- for a_deplib in $deplibs; do
-- name="`expr $a_deplib : '-l\(.*\)'`"
-+ name=`expr $a_deplib : '-l\(.*\)'`
- # If $name is empty we are operating on a -L argument.
- if test "$name" != "" && test "$name" != "0"; then
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-@@ -3383,7 +3677,7 @@
- set dummy $deplibs_check_method
- match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
- for a_deplib in $deplibs; do
-- name="`expr $a_deplib : '-l\(.*\)'`"
-+ name=`expr $a_deplib : '-l\(.*\)'`
- # If $name is empty we are operating on a -L argument.
- if test -n "$name" && test "$name" != "0"; then
- if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-@@ -3463,7 +3757,7 @@
- case $host in
- *-*-rhapsody* | *-*-darwin1.[012])
- # On Rhapsody replace the C library is the System framework
-- newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
-+ newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
- ;;
- esac
-
-@@ -3509,17 +3803,39 @@
- fi
- fi
- fi
-- # Time to change all our "foo.ltframework" stuff back to "-framework foo"
-- case $host in
-- *-*-darwin*)
-- newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
-- dependency_libs=`$echo "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
-- ;;
-- esac
- # Done checking deplibs!
- deplibs=$newdeplibs
- fi
-
-+
-+ # move library search paths that coincide with paths to not yet
-+ # installed libraries to the beginning of the library search list
-+ new_libs=
-+ for path in $notinst_path; do
-+ case " $new_libs " in
-+ *" -L$path/$objdir "*) ;;
-+ *)
-+ case " $deplibs " in
-+ *" -L$path/$objdir "*)
-+ new_libs="$new_libs -L$path/$objdir" ;;
-+ esac
-+ ;;
-+ esac
-+ done
-+ for deplib in $deplibs; do
-+ case $deplib in
-+ -L*)
-+ case " $new_libs " in
-+ *" $deplib "*) ;;
-+ *) new_libs="$new_libs $deplib" ;;
-+ esac
-+ ;;
-+ *) new_libs="$new_libs $deplib" ;;
-+ esac
-+ done
-+ deplibs="$new_libs"
-+
-+
- # All the library-specific variables (install_libdir is set above).
- library_names=
- old_library=
-@@ -3532,7 +3848,7 @@
- hardcode_libdirs=
- dep_rpath=
- rpath="$finalize_rpath"
-- test "$mode" != relink && test "$fast_install" = no && rpath="$compile_rpath$rpath"
-+ test "$mode" != relink && rpath="$compile_rpath$rpath"
- for libdir in $rpath; do
- if test -n "$hardcode_libdir_flag_spec"; then
- if test -n "$hardcode_libdir_separator"; then
-@@ -3587,7 +3903,7 @@
- fi
-
- # Get the real and link names of the library.
-- eval shared_ext=\"$shrext\"
-+ eval shared_ext=\"$shrext_cmds\"
- eval library_names=\"$library_names_spec\"
- set dummy $library_names
- realname="$2"
-@@ -3603,6 +3919,7 @@
- fi
-
- lib="$output_objdir/$realname"
-+ linknames=
- for link
- do
- linknames="$linknames $link"
-@@ -3617,10 +3934,11 @@
- $show "generating symbol list for \`$libname.la'"
- export_symbols="$output_objdir/$libname.exp"
- $run $rm $export_symbols
-- eval cmds=\"$export_symbols_cmds\"
-+ cmds=$export_symbols_cmds
- save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
-+ eval cmd=\"$cmd\"
- if len=`expr "X$cmd" : ".*"` &&
- test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
- $show "$cmd"
-@@ -3630,6 +3948,9 @@
- # The command line is too long to execute in one step.
- $show "using reloadable object file for export list..."
- skipped_export=:
-+ # Break out early, otherwise skipped_export may be
-+ # set to false by a later but shorter cmd.
-+ break
- fi
- done
- IFS="$save_ifs"
-@@ -3650,12 +3971,12 @@
- for test_deplib in $deplibs; do
- case " $convenience " in
- *" $test_deplib "*) ;;
-- *)
-+ *)
- tmp_deplibs="$tmp_deplibs $test_deplib"
- ;;
- esac
- done
-- deplibs="$tmp_deplibs"
-+ deplibs="$tmp_deplibs"
-
- if test -n "$convenience"; then
- if test -n "$whole_archive_flag_spec"; then
-@@ -3663,67 +3984,13 @@
- eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
- else
- gentop="$output_objdir/${outputname}x"
-- $show "${rm}r $gentop"
-- $run ${rm}r "$gentop"
-- $show "$mkdir $gentop"
-- $run $mkdir "$gentop"
-- status=$?
-- if test "$status" -ne 0 && test ! -d "$gentop"; then
-- exit $status
-- fi
- generated="$generated $gentop"
-
-- for xlib in $convenience; do
-- # Extract the objects.
-- case $xlib in
-- [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
-- *) xabs=`pwd`"/$xlib" ;;
-- esac
-- xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
-- xdir="$gentop/$xlib"
--
-- $show "${rm}r $xdir"
-- $run ${rm}r "$xdir"
-- $show "$mkdir $xdir"
-- $run $mkdir "$xdir"
-- status=$?
-- if test "$status" -ne 0 && test ! -d "$xdir"; then
-- exit $status
-- fi
-- # We will extract separately just the conflicting names and we will no
-- # longer touch any unique names. It is faster to leave these extract
-- # automatically by $AR in one run.
-- $show "(cd $xdir && $AR x $xabs)"
-- $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
-- if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then
-- :
-- else
-- $echo "$modename: warning: object name conflicts; renaming object files" 1>&2
-- $echo "$modename: warning: to ensure that they will not overwrite" 1>&2
-- $AR t "$xabs" | sort | uniq -cd | while read -r count name
-- do
-- i=1
-- while test "$i" -le "$count"
-- do
-- # Put our $i before any first dot (extension)
-- # Never overwrite any file
-- name_to="$name"
-- while test "X$name_to" = "X$name" || test -f "$xdir/$name_to"
-- do
-- name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
-- done
-- $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
-- $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $?
-- i=`expr $i + 1`
-- done
-- done
-- fi
--
-- libobjs="$libobjs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
-- done
-+ func_extract_archives $gentop $convenience
-+ libobjs="$libobjs $func_extract_archives_result"
- fi
- fi
--
-+
- if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
- eval flag=\"$thread_safe_flag_spec\"
- linker_flags="$linker_flags $flag"
-@@ -3734,31 +4001,27 @@
- $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
- fi
-
-- # Add all flags from the command line. We here create a library,
-- # but those flags were only added to compile_command and
-- # finalize_command, which are only used when creating executables.
-- # So do it by hand here.
-- compiler_flags="$compiler_flags $add_flags"
-- # Only add it to commands which use CC, instead of LD, i.e.
-- # only to $compiler_flags
-- #linker_flags="$linker_flags $add_flags"
--
- # Do each of the archive commands.
- if test "$module" = yes && test -n "$module_cmds" ; then
- if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
-- eval cmds=\"$module_expsym_cmds\"
-+ eval test_cmds=\"$module_expsym_cmds\"
-+ cmds=$module_expsym_cmds
- else
-- eval cmds=\"$module_cmds\"
-+ eval test_cmds=\"$module_cmds\"
-+ cmds=$module_cmds
- fi
- else
- if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
-- eval cmds=\"$archive_expsym_cmds\"
-+ eval test_cmds=\"$archive_expsym_cmds\"
-+ cmds=$archive_expsym_cmds
- else
-- eval cmds=\"$archive_cmds\"
-+ eval test_cmds=\"$archive_cmds\"
-+ cmds=$archive_cmds
- fi
- fi
-
-- if test "X$skipped_export" != "X:" && len=`expr "X$cmds" : ".*"` &&
-+ if test "X$skipped_export" != "X:" &&
-+ len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
- test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
- :
- else
-@@ -3777,6 +4040,7 @@
- save_libobjs=$libobjs
- fi
- save_output=$output
-+ output_la=`$echo "X$output" | $Xsed -e "$basename"`
-
- # Clear the reloadable object creation command queue and
- # initialize k to one.
-@@ -3786,13 +4050,13 @@
- delfiles=
- last_robj=
- k=1
-- output=$output_objdir/$save_output-${k}.$objext
-+ output=$output_objdir/$output_la-${k}.$objext
- # Loop over the list of objects to be linked.
- for obj in $save_libobjs
- do
- eval test_cmds=\"$reload_cmds $objlist $last_robj\"
- if test "X$objlist" = X ||
-- { len=`expr "X$test_cmds" : ".*"` &&
-+ { len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
- test "$len" -le "$max_cmd_len"; }; then
- objlist="$objlist $obj"
- else
-@@ -3806,9 +4070,9 @@
- # the last one created.
- eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
- fi
-- last_robj=$output_objdir/$save_output-${k}.$objext
-+ last_robj=$output_objdir/$output_la-${k}.$objext
- k=`expr $k + 1`
-- output=$output_objdir/$save_output-${k}.$objext
-+ output=$output_objdir/$output_la-${k}.$objext
- objlist=$obj
- len=1
- fi
-@@ -3828,13 +4092,13 @@
- eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
- fi
-
-- # Set up a command to remove the reloadale object files
-+ # Set up a command to remove the reloadable object files
- # after they are used.
- i=0
- while test "$i" -lt "$k"
- do
- i=`expr $i + 1`
-- delfiles="$delfiles $output_objdir/$save_output-${i}.$objext"
-+ delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
- done
-
- $echo "creating a temporary reloadable object file: $output"
-@@ -3859,28 +4123,54 @@
- # value of $libobjs for piecewise linking.
-
- # Do each of the archive commands.
-+ if test "$module" = yes && test -n "$module_cmds" ; then
-+ if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
-+ cmds=$module_expsym_cmds
-+ else
-+ cmds=$module_cmds
-+ fi
-+ else
- if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
-- eval cmds=\"$archive_expsym_cmds\"
-+ cmds=$archive_expsym_cmds
- else
-- eval cmds=\"$archive_cmds\"
-+ cmds=$archive_cmds
-+ fi
- fi
-
- # Append the command to remove the reloadable object files
- # to the just-reset $cmds.
-- eval cmds=\"\$cmds~$rm $delfiles\"
-+ eval cmds=\"\$cmds~\$rm $delfiles\"
- fi
- save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
-+ eval cmd=\"$cmd\"
- $show "$cmd"
-- $run eval "$cmd" || exit $?
-+ $run eval "$cmd" || {
-+ lt_exit=$?
-+
-+ # Restore the uninstalled library and exit
-+ if test "$mode" = relink; then
-+ $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
-+ fi
-+
-+ exit $lt_exit
-+ }
- done
- IFS="$save_ifs"
-
- # Restore the uninstalled library and exit
- if test "$mode" = relink; then
- $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
-- exit 0
-+
-+ if test -n "$convenience"; then
-+ if test -z "$whole_archive_flag_spec"; then
-+ $show "${rm}r $gentop"
-+ $run ${rm}r "$gentop"
-+ fi
-+ fi
-+
-+ exit $EXIT_SUCCESS
- fi
-
- # Create links to the real library.
-@@ -3928,7 +4218,7 @@
- *.lo)
- if test -n "$objs$old_deplibs"; then
- $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- fi
- libobj="$output"
- obj=`$echo "X$output" | $Xsed -e "$lo2o"`
-@@ -3957,64 +4247,10 @@
- eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
- else
- gentop="$output_objdir/${obj}x"
-- $show "${rm}r $gentop"
-- $run ${rm}r "$gentop"
-- $show "$mkdir $gentop"
-- $run $mkdir "$gentop"
-- status=$?
-- if test "$status" -ne 0 && test ! -d "$gentop"; then
-- exit $status
-- fi
- generated="$generated $gentop"
-
-- for xlib in $convenience; do
-- # Extract the objects.
-- case $xlib in
-- [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
-- *) xabs=`pwd`"/$xlib" ;;
-- esac
-- xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
-- xdir="$gentop/$xlib"
--
-- $show "${rm}r $xdir"
-- $run ${rm}r "$xdir"
-- $show "$mkdir $xdir"
-- $run $mkdir "$xdir"
-- status=$?
-- if test "$status" -ne 0 && test ! -d "$xdir"; then
-- exit $status
-- fi
-- # We will extract separately just the conflicting names and we will no
-- # longer touch any unique names. It is faster to leave these extract
-- # automatically by $AR in one run.
-- $show "(cd $xdir && $AR x $xabs)"
-- $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
-- if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then
-- :
-- else
-- $echo "$modename: warning: object name conflicts; renaming object files" 1>&2
-- $echo "$modename: warning: to ensure that they will not overwrite" 1>&2
-- $AR t "$xabs" | sort | uniq -cd | while read -r count name
-- do
-- i=1
-- while test "$i" -le "$count"
-- do
-- # Put our $i before any first dot (extension)
-- # Never overwrite any file
-- name_to="$name"
-- while test "X$name_to" = "X$name" || test -f "$xdir/$name_to"
-- do
-- name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
-- done
-- $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
-- $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $?
-- i=`expr $i + 1`
-- done
-- done
-- fi
--
-- reload_conv_objs="$reload_objs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
-- done
-+ func_extract_archives $gentop $convenience
-+ reload_conv_objs="$reload_objs $func_extract_archives_result"
- fi
- fi
-
-@@ -4022,10 +4258,11 @@
- reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
-
- output="$obj"
-- eval cmds=\"$reload_cmds\"
-+ cmds=$reload_cmds
- save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
-+ eval cmd=\"$cmd\"
- $show "$cmd"
- $run eval "$cmd" || exit $?
- done
-@@ -4038,7 +4275,7 @@
- $run ${rm}r $gentop
- fi
-
-- exit 0
-+ exit $EXIT_SUCCESS
- fi
-
- if test "$build_libtool_libs" != yes; then
-@@ -4051,17 +4288,18 @@
- # accidentally link it into a program.
- # $show "echo timestamp > $libobj"
- # $run eval "echo timestamp > $libobj" || exit $?
-- exit 0
-+ exit $EXIT_SUCCESS
- fi
-
- if test -n "$pic_flag" || test "$pic_mode" != default; then
- # Only do commands if we really have different PIC objects.
- reload_objs="$libobjs $reload_conv_objs"
- output="$libobj"
-- eval cmds=\"$reload_cmds\"
-+ cmds=$reload_cmds
- save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
-+ eval cmd=\"$cmd\"
- $show "$cmd"
- $run eval "$cmd" || exit $?
- done
-@@ -4073,7 +4311,7 @@
- $run ${rm}r $gentop
- fi
-
-- exit 0
-+ exit $EXIT_SUCCESS
- ;;
-
- prog)
-@@ -4098,24 +4336,50 @@
- case $host in
- *-*-rhapsody* | *-*-darwin1.[012])
- # On Rhapsody replace the C library is the System framework
-- compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
-- finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
-+ compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
-+ finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
- ;;
- esac
-
- case $host in
-- *-*-darwin*)
-+ *darwin*)
- # Don't allow lazy linking, it breaks C++ global constructors
- if test "$tagname" = CXX ; then
- compile_command="$compile_command ${wl}-bind_at_load"
- finalize_command="$finalize_command ${wl}-bind_at_load"
- fi
-- # Time to change all our "foo.ltframework" stuff back to "-framework foo"
-- compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
-- finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
- ;;
- esac
-
-+
-+ # move library search paths that coincide with paths to not yet
-+ # installed libraries to the beginning of the library search list
-+ new_libs=
-+ for path in $notinst_path; do
-+ case " $new_libs " in
-+ *" -L$path/$objdir "*) ;;
-+ *)
-+ case " $compile_deplibs " in
-+ *" -L$path/$objdir "*)
-+ new_libs="$new_libs -L$path/$objdir" ;;
-+ esac
-+ ;;
-+ esac
-+ done
-+ for deplib in $compile_deplibs; do
-+ case $deplib in
-+ -L*)
-+ case " $new_libs " in
-+ *" $deplib "*) ;;
-+ *) new_libs="$new_libs $deplib" ;;
-+ esac
-+ ;;
-+ *) new_libs="$new_libs $deplib" ;;
-+ esac
-+ done
-+ compile_deplibs="$new_libs"
-+
-+
- compile_command="$compile_command $compile_deplibs"
- finalize_command="$finalize_command $finalize_deplibs"
-
-@@ -4160,10 +4424,15 @@
- fi
- case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-+ testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'`
- case :$dllsearchpath: in
- *":$libdir:"*) ;;
- *) dllsearchpath="$dllsearchpath:$libdir";;
- esac
-+ case :$dllsearchpath: in
-+ *":$testbindir:"*) ;;
-+ *) dllsearchpath="$dllsearchpath:$testbindir";;
-+ esac
- ;;
- esac
- done
-@@ -4277,13 +4546,25 @@
-
- # Prepare the list of exported symbols
- if test -z "$export_symbols"; then
-- export_symbols="$output_objdir/$output.exp"
-+ export_symbols="$output_objdir/$outputname.exp"
- $run $rm $export_symbols
-- $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
-+ $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
-+ case $host in
-+ *cygwin* | *mingw* )
-+ $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
-+ $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
-+ ;;
-+ esac
- else
-- $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
-- $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
-+ $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
-+ $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
- $run eval 'mv "$nlist"T "$nlist"'
-+ case $host in
-+ *cygwin* | *mingw* )
-+ $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
-+ $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
-+ ;;
-+ esac
- fi
- fi
-
-@@ -4334,7 +4615,26 @@
- #endif
-
- /* The mapping between symbol names and symbols. */
-+"
-+
-+ case $host in
-+ *cygwin* | *mingw* )
-+ $echo >> "$output_objdir/$dlsyms" "\
-+/* DATA imports from DLLs on WIN32 can't be const, because
-+ runtime relocations are performed -- see ld's documentation
-+ on pseudo-relocs */
-+struct {
-+"
-+ ;;
-+ * )
-+ $echo >> "$output_objdir/$dlsyms" "\
- const struct {
-+"
-+ ;;
-+ esac
-+
-+
-+ $echo >> "$output_objdir/$dlsyms" "\
- const char *name;
- lt_ptr address;
- }
-@@ -4381,20 +4681,33 @@
- esac
-
- # Now compile the dynamic symbol file.
-- $show "(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
-- $run eval '(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
-+ $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
-+ $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
-
- # Clean up the generated files.
- $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
- $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
-
- # Transform the symbol file into the correct name.
-- compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
-- finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
-+ case $host in
-+ *cygwin* | *mingw* )
-+ if test -f "$output_objdir/${outputname}.def" ; then
-+ compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
-+ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
-+ else
-+ compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
-+ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
-+ fi
-+ ;;
-+ * )
-+ compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
-+ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
-+ ;;
-+ esac
- ;;
- *)
- $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- ;;
- esac
- else
-@@ -4407,17 +4720,6 @@
- finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
- fi
-
-- # AIX runtime linking requires linking programs with -Wl,-brtl and libs with -Wl,-G
-- # Also add -bnolibpath to the beginning of the link line, to clear the hardcoded runpath.
-- # Otherwise, things like the -L path to libgcc.a are accidentally hardcoded by ld.
-- # This does not apply on AIX for ia64, which uses a SysV linker.
-- case "$host" in
-- ia64-*-aix5*) ;;
-- *-*-aix4* | *-*-aix5*)
-- compile_command=`$echo "X$compile_command $wl-brtl" | $Xsed -e "s/\$CC/\$CC $wl-bnolibpath/1"`
-- finalize_command=`$echo "X$finalize_command $wl-brtl" | $Xsed -e "s/\$CC/\$CC $wl-bnolibpath/1"` ;;
-- esac
--
- if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
- # Replace the output file specification.
- compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
-@@ -4426,7 +4728,7 @@
- # We have no uninstalled library dependencies, so finalize right now.
- $show "$link_command"
- $run eval "$link_command"
-- status=$?
-+ exit_status=$?
-
- # Delete the generated files.
- if test -n "$dlsyms"; then
-@@ -4434,7 +4736,7 @@
- $run $rm "$output_objdir/${outputname}S.${objext}"
- fi
-
-- exit $status
-+ exit $exit_status
- fi
-
- if test -n "$shlibpath_var"; then
-@@ -4493,7 +4795,7 @@
- # Link the executable and exit
- $show "$link_command"
- $run eval "$link_command" || exit $?
-- exit 0
-+ exit $EXIT_SUCCESS
- fi
-
- if test "$hardcode_action" = relink; then
-@@ -4548,10 +4850,10 @@
- fi
-
- # Quote $echo for shipping.
-- if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
-- case $0 in
-- [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
-- *) qecho="$SHELL `pwd`/$0 --fallback-echo";;
-+ if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
-+ case $progpath in
-+ [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
-+ *) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
- esac
- qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
- else
-@@ -4573,11 +4875,13 @@
- *) exeext= ;;
- esac
- case $host in
-- *mingw* )
-- cwrappersource=`$echo ${output_objdir}/lt-${outputname}.c`
-- cwrapper=`$echo ${output}.exe`
-- $rm $cwrappersource $cwrapper
-- trap "$rm $cwrappersource $cwrapper; exit 1" 1 2 15
-+ *cygwin* | *mingw* )
-+ output_name=`basename $output`
-+ output_path=`dirname $output`
-+ cwrappersource="$output_path/$objdir/lt-$output_name.c"
-+ cwrapper="$output_path/$output_name.exe"
-+ $rm $cwrappersource $cwrapper
-+ trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
-
- cat > $cwrappersource <<EOF
-
-@@ -4586,7 +4890,7 @@
-
- The $output program cannot be directly executed until all the libtool
- libraries that it depends on are installed.
--
-+
- This wrapper executable should never be moved out of the build directory.
- If it is, it will not operate correctly.
-
-@@ -4602,6 +4906,9 @@
- #include <malloc.h>
- #include <stdarg.h>
- #include <assert.h>
-+#include <string.h>
-+#include <ctype.h>
-+#include <sys/stat.h>
-
- #if defined(PATH_MAX)
- # define LT_PATHMAX PATH_MAX
-@@ -4612,15 +4919,19 @@
- #endif
-
- #ifndef DIR_SEPARATOR
--#define DIR_SEPARATOR '/'
-+# define DIR_SEPARATOR '/'
-+# define PATH_SEPARATOR ':'
- #endif
-
- #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
- defined (__OS2__)
--#define HAVE_DOS_BASED_FILE_SYSTEM
--#ifndef DIR_SEPARATOR_2
--#define DIR_SEPARATOR_2 '\\'
--#endif
-+# define HAVE_DOS_BASED_FILE_SYSTEM
-+# ifndef DIR_SEPARATOR_2
-+# define DIR_SEPARATOR_2 '\\'
-+# endif
-+# ifndef PATH_SEPARATOR_2
-+# define PATH_SEPARATOR_2 ';'
-+# endif
- #endif
-
- #ifndef DIR_SEPARATOR_2
-@@ -4630,17 +4941,32 @@
- (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
- #endif /* DIR_SEPARATOR_2 */
-
-+#ifndef PATH_SEPARATOR_2
-+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
-+#else /* PATH_SEPARATOR_2 */
-+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
-+#endif /* PATH_SEPARATOR_2 */
-+
- #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type)))
- #define XFREE(stale) do { \
- if (stale) { free ((void *) stale); stale = 0; } \
- } while (0)
-
-+/* -DDEBUG is fairly common in CFLAGS. */
-+#undef DEBUG
-+#if defined DEBUGWRAPPER
-+# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__)
-+#else
-+# define DEBUG(format, ...)
-+#endif
-+
- const char *program_name = NULL;
-
- void * xmalloc (size_t num);
- char * xstrdup (const char *string);
--char * basename (const char *name);
--char * fnqualify(const char *path);
-+const char * base_name (const char *name);
-+char * find_executable(const char *wrapper);
-+int check_executable(const char *path);
- char * strendzap(char *str, const char *pat);
- void lt_fatal (const char *message, ...);
-
-@@ -4649,30 +4975,52 @@
- {
- char **newargz;
- int i;
--
-- program_name = (char *) xstrdup ((char *) basename (argv[0]));
-+
-+ program_name = (char *) xstrdup (base_name (argv[0]));
-+ DEBUG("(main) argv[0] : %s\n",argv[0]);
-+ DEBUG("(main) program_name : %s\n",program_name);
- newargz = XMALLOC(char *, argc+2);
- EOF
-
-- cat >> $cwrappersource <<EOF
-- newargz[0] = "$SHELL";
-+ cat >> $cwrappersource <<EOF
-+ newargz[0] = (char *) xstrdup("$SHELL");
- EOF
-
-- cat >> $cwrappersource <<"EOF"
-- newargz[1] = fnqualify(argv[0]);
-+ cat >> $cwrappersource <<"EOF"
-+ newargz[1] = find_executable(argv[0]);
-+ if (newargz[1] == NULL)
-+ lt_fatal("Couldn't find %s", argv[0]);
-+ DEBUG("(main) found exe at : %s\n",newargz[1]);
- /* we know the script has the same name, without the .exe */
- /* so make sure newargz[1] doesn't end in .exe */
-- strendzap(newargz[1],".exe");
-+ strendzap(newargz[1],".exe");
- for (i = 1; i < argc; i++)
- newargz[i+1] = xstrdup(argv[i]);
- newargz[argc+1] = NULL;
-+
-+ for (i=0; i<argc+1; i++)
-+ {
-+ DEBUG("(main) newargz[%d] : %s\n",i,newargz[i]);
-+ ;
-+ }
-+
- EOF
-
-- cat >> $cwrappersource <<EOF
-+ case $host_os in
-+ mingw*)
-+ cat >> $cwrappersource <<EOF
-+ execv("$SHELL",(char const **)newargz);
-+EOF
-+ ;;
-+ *)
-+ cat >> $cwrappersource <<EOF
- execv("$SHELL",newargz);
- EOF
-+ ;;
-+ esac
-
-- cat >> $cwrappersource <<"EOF"
-+ cat >> $cwrappersource <<"EOF"
-+ return 127;
- }
-
- void *
-@@ -4685,59 +5033,159 @@
- return p;
- }
-
--char *
-+char *
- xstrdup (const char *string)
- {
- return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
- ;
- }
-
--char *
--basename (const char *name)
-+const char *
-+base_name (const char *name)
- {
- const char *base;
-
- #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
- /* Skip over the disk name in MSDOS pathnames. */
-- if (isalpha (name[0]) && name[1] == ':')
-+ if (isalpha ((unsigned char)name[0]) && name[1] == ':')
- name += 2;
- #endif
-
- for (base = name; *name; name++)
- if (IS_DIR_SEPARATOR (*name))
- base = name + 1;
-- return (char *) base;
-+ return base;
- }
-
--char *
--fnqualify(const char *path)
-+int
-+check_executable(const char * path)
-+{
-+ struct stat st;
-+
-+ DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!");
-+ if ((!path) || (!*path))
-+ return 0;
-+
-+ if ((stat (path, &st) >= 0) &&
-+ (
-+ /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */
-+#if defined (S_IXOTH)
-+ ((st.st_mode & S_IXOTH) == S_IXOTH) ||
-+#endif
-+#if defined (S_IXGRP)
-+ ((st.st_mode & S_IXGRP) == S_IXGRP) ||
-+#endif
-+ ((st.st_mode & S_IXUSR) == S_IXUSR))
-+ )
-+ return 1;
-+ else
-+ return 0;
-+}
-+
-+/* Searches for the full path of the wrapper. Returns
-+ newly allocated full path name if found, NULL otherwise */
-+char *
-+find_executable (const char* wrapper)
- {
-- size_t size;
-- char *p;
-+ int has_slash = 0;
-+ const char* p;
-+ const char* p_next;
-+ /* static buffer for getcwd */
- char tmp[LT_PATHMAX + 1];
-+ int tmp_len;
-+ char* concat_name;
-+
-+ DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!");
-
-- assert(path != NULL);
-+ if ((wrapper == NULL) || (*wrapper == '\0'))
-+ return NULL;
-
-- /* Is it qualified already? */
-+ /* Absolute path? */
-+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
-+ if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':')
-+ {
-+ concat_name = xstrdup (wrapper);
-+ if (check_executable(concat_name))
-+ return concat_name;
-+ XFREE(concat_name);
-+ }
-+ else
-+ {
-+#endif
-+ if (IS_DIR_SEPARATOR (wrapper[0]))
-+ {
-+ concat_name = xstrdup (wrapper);
-+ if (check_executable(concat_name))
-+ return concat_name;
-+ XFREE(concat_name);
-+ }
- #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
-- if (isalpha (path[0]) && path[1] == ':')
-- return xstrdup (path);
-+ }
- #endif
-- if (IS_DIR_SEPARATOR (path[0]))
-- return xstrdup (path);
-
-- /* prepend the current directory */
-- /* doesn't handle '~' */
-+ for (p = wrapper; *p; p++)
-+ if (*p == '/')
-+ {
-+ has_slash = 1;
-+ break;
-+ }
-+ if (!has_slash)
-+ {
-+ /* no slashes; search PATH */
-+ const char* path = getenv ("PATH");
-+ if (path != NULL)
-+ {
-+ for (p = path; *p; p = p_next)
-+ {
-+ const char* q;
-+ size_t p_len;
-+ for (q = p; *q; q++)
-+ if (IS_PATH_SEPARATOR(*q))
-+ break;
-+ p_len = q - p;
-+ p_next = (*q == '\0' ? q : q + 1);
-+ if (p_len == 0)
-+ {
-+ /* empty path: current directory */
-+ if (getcwd (tmp, LT_PATHMAX) == NULL)
-+ lt_fatal ("getcwd failed");
-+ tmp_len = strlen(tmp);
-+ concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
-+ memcpy (concat_name, tmp, tmp_len);
-+ concat_name[tmp_len] = '/';
-+ strcpy (concat_name + tmp_len + 1, wrapper);
-+ }
-+ else
-+ {
-+ concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1);
-+ memcpy (concat_name, p, p_len);
-+ concat_name[p_len] = '/';
-+ strcpy (concat_name + p_len + 1, wrapper);
-+ }
-+ if (check_executable(concat_name))
-+ return concat_name;
-+ XFREE(concat_name);
-+ }
-+ }
-+ /* not found in PATH; assume curdir */
-+ }
-+ /* Relative path | not found in path: prepend cwd */
- if (getcwd (tmp, LT_PATHMAX) == NULL)
- lt_fatal ("getcwd failed");
-- size = strlen(tmp) + 1 + strlen(path) + 1; /* +2 for '/' and '\0' */
-- p = XMALLOC(char, size);
-- sprintf(p, "%s%c%s", tmp, DIR_SEPARATOR, path);
-- return p;
-+ tmp_len = strlen(tmp);
-+ concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
-+ memcpy (concat_name, tmp, tmp_len);
-+ concat_name[tmp_len] = '/';
-+ strcpy (concat_name + tmp_len + 1, wrapper);
-+
-+ if (check_executable(concat_name))
-+ return concat_name;
-+ XFREE(concat_name);
-+ return NULL;
- }
-
- char *
--strendzap(char *str, const char *pat)
-+strendzap(char *str, const char *pat)
- {
- size_t len, patlen;
-
-@@ -4757,7 +5205,7 @@
- }
-
- static void
--lt_error_core (int exit_status, const char * mode,
-+lt_error_core (int exit_status, const char * mode,
- const char * message, va_list ap)
- {
- fprintf (stderr, "%s: %s: ", program_name, mode);
-@@ -4777,16 +5225,16 @@
- va_end (ap);
- }
- EOF
-- # we should really use a build-platform specific compiler
-- # here, but OTOH, the wrappers (shell script and this C one)
-- # are only useful if you want to execute the "real" binary.
-- # Since the "real" binary is built for $host, then this
-- # wrapper might as well be built for $host, too.
-- $run $LTCC -s -o $cwrapper $cwrappersource
-- ;;
-- esac
-- $rm $output
-- trap "$rm $output; exit 1" 1 2 15
-+ # we should really use a build-platform specific compiler
-+ # here, but OTOH, the wrappers (shell script and this C one)
-+ # are only useful if you want to execute the "real" binary.
-+ # Since the "real" binary is built for $host, then this
-+ # wrapper might as well be built for $host, too.
-+ $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource
-+ ;;
-+ esac
-+ $rm $output
-+ trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
-
- $echo > $output "\
- #! $SHELL
-@@ -4807,7 +5255,7 @@
-
- # The HP-UX ksh and POSIX shell print the target directory to stdout
- # if CDPATH is set.
--if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
-+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
- relink_command=\"$relink_command\"
-
-@@ -4886,7 +5334,7 @@
- else
- $echo \"\$relink_command_output\" >&2
- $rm \"\$progdir/\$file\"
-- exit 1
-+ exit $EXIT_FAILURE
- fi
- fi
-
-@@ -4936,34 +5384,32 @@
- # Backslashes separate directories on plain windows
- *-*-mingw | *-*-os2*)
- $echo >> $output "\
-- exec \$progdir\\\\\$program \${1+\"\$@\"}
-+ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
- "
- ;;
-
- *)
-- # Need to set LD_LIBRARY_PATH, to the value already
-- # computed within libtool.
- $echo >> $output "\
-- LD_LIBRARY_PATH=\"$rpath\" exec \$progdir/\$program \${1+\"\$@\"}
-+ exec \"\$progdir/\$program\" \${1+\"\$@\"}
- "
- ;;
- esac
- $echo >> $output "\
- \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
-- exit 1
-+ exit $EXIT_FAILURE
- fi
- else
- # The program doesn't exist.
-- \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
-+ \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
- \$echo \"This script is just a wrapper for \$program.\" 1>&2
- $echo \"See the $PACKAGE documentation for more information.\" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- fi
- fi\
- "
- chmod +x $output
- fi
-- exit 0
-+ exit $EXIT_SUCCESS
- ;;
- esac
-
-@@ -4986,78 +5432,78 @@
-
- if test -n "$addlibs"; then
- gentop="$output_objdir/${outputname}x"
-- $show "${rm}r $gentop"
-- $run ${rm}r "$gentop"
-- $show "$mkdir $gentop"
-- $run $mkdir "$gentop"
-- status=$?
-- if test "$status" -ne 0 && test ! -d "$gentop"; then
-- exit $status
-- fi
- generated="$generated $gentop"
-
-- # Add in members from convenience archives.
-- for xlib in $addlibs; do
-- # Extract the objects.
-- case $xlib in
-- [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
-- *) xabs=`pwd`"/$xlib" ;;
-- esac
-- xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
-- xdir="$gentop/$xlib"
--
-- $show "${rm}r $xdir"
-- $run ${rm}r "$xdir"
-- $show "$mkdir $xdir"
-- $run $mkdir "$xdir"
-- status=$?
-- if test "$status" -ne 0 && test ! -d "$xdir"; then
-- exit $status
-- fi
-- # We will extract separately just the conflicting names and we will no
-- # longer touch any unique names. It is faster to leave these extract
-- # automatically by $AR in one run.
-- $show "(cd $xdir && $AR x $xabs)"
-- $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
-- if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then
-- :
-- else
-- $echo "$modename: warning: object name conflicts; renaming object files" 1>&2
-- $echo "$modename: warning: to ensure that they will not overwrite" 1>&2
-- $AR t "$xabs" | sort | uniq -cd | while read -r count name
-- do
-- i=1
-- while test "$i" -le "$count"
-- do
-- # Put our $i before any first dot (extension)
-- # Never overwrite any file
-- name_to="$name"
-- while test "X$name_to" = "X$name" || test -f "$xdir/$name_to"
-- do
-- name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
-- done
-- $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
-- $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $?
-- i=`expr $i + 1`
-- done
-- done
-- fi
--
-- oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
-- done
-+ func_extract_archives $gentop $addlibs
-+ oldobjs="$oldobjs $func_extract_archives_result"
- fi
-
-- compiler_flags="$compiler_flags $add_flags"
--
- # Do each command in the archive commands.
- if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
-- eval cmds=\"$old_archive_from_new_cmds\"
-+ cmds=$old_archive_from_new_cmds
- else
-+ # POSIX demands no paths to be encoded in archives. We have
-+ # to avoid creating archives with duplicate basenames if we
-+ # might have to extract them afterwards, e.g., when creating a
-+ # static archive out of a convenience library, or when linking
-+ # the entirety of a libtool archive into another (currently
-+ # not supported by libtool).
-+ if (for obj in $oldobjs
-+ do
-+ $echo "X$obj" | $Xsed -e 's%^.*/%%'
-+ done | sort | sort -uc >/dev/null 2>&1); then
-+ :
-+ else
-+ $echo "copying selected object files to avoid basename conflicts..."
-+
-+ if test -z "$gentop"; then
-+ gentop="$output_objdir/${outputname}x"
-+ generated="$generated $gentop"
-+
-+ $show "${rm}r $gentop"
-+ $run ${rm}r "$gentop"
-+ $show "$mkdir $gentop"
-+ $run $mkdir "$gentop"
-+ exit_status=$?
-+ if test "$exit_status" -ne 0 && test ! -d "$gentop"; then
-+ exit $exit_status
-+ fi
-+ fi
-+
-+ save_oldobjs=$oldobjs
-+ oldobjs=
-+ counter=1
-+ for obj in $save_oldobjs
-+ do
-+ objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
-+ case " $oldobjs " in
-+ " ") oldobjs=$obj ;;
-+ *[\ /]"$objbase "*)
-+ while :; do
-+ # Make sure we don't pick an alternate name that also
-+ # overlaps.
-+ newobj=lt$counter-$objbase
-+ counter=`expr $counter + 1`
-+ case " $oldobjs " in
-+ *[\ /]"$newobj "*) ;;
-+ *) if test ! -f "$gentop/$newobj"; then break; fi ;;
-+ esac
-+ done
-+ $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
-+ $run ln "$obj" "$gentop/$newobj" ||
-+ $run cp "$obj" "$gentop/$newobj"
-+ oldobjs="$oldobjs $gentop/$newobj"
-+ ;;
-+ *) oldobjs="$oldobjs $obj" ;;
-+ esac
-+ done
-+ fi
-+
- eval cmds=\"$old_archive_cmds\"
-
- if len=`expr "X$cmds" : ".*"` &&
- test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
-- :
-+ cmds=$old_archive_cmds
- else
- # the command line is too long to link in one step, link in parts
- $echo "using piecewise archive linking..."
-@@ -5066,31 +5512,18 @@
- objlist=
- concat_cmds=
- save_oldobjs=$oldobjs
-- # GNU ar 2.10+ was changed to match POSIX; thus no paths are
-- # encoded into archives. This makes 'ar r' malfunction in
-- # this piecewise linking case whenever conflicting object
-- # names appear in distinct ar calls; check, warn and compensate.
-- if (for obj in $save_oldobjs
-- do
-- $echo "X$obj" | $Xsed -e 's%^.*/%%'
-- done | sort | sort -uc >/dev/null 2>&1); then
-- :
-- else
-- $echo "$modename: warning: object name conflicts; overriding AR_FLAGS to 'cq'" 1>&2
-- $echo "$modename: warning: to ensure that POSIX-compatible ar will work" 1>&2
-- AR_FLAGS=cq
-- fi
-+
- # Is there a better way of finding the last object in the list?
- for obj in $save_oldobjs
- do
- last_oldobj=$obj
-- done
-+ done
- for obj in $save_oldobjs
- do
- oldobjs="$objlist $obj"
- objlist="$objlist $obj"
- eval test_cmds=\"$old_archive_cmds\"
-- if len=`expr "X$test_cmds" : ".*"` &&
-+ if len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
- test "$len" -le "$max_cmd_len"; then
- :
- else
-@@ -5098,7 +5531,7 @@
- oldobjs=$objlist
- if test "$obj" = "$last_oldobj" ; then
- RANLIB=$save_RANLIB
-- fi
-+ fi
- test -z "$concat_cmds" || concat_cmds=$concat_cmds~
- eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
- objlist=
-@@ -5109,12 +5542,13 @@
- if test "X$oldobjs" = "X" ; then
- eval cmds=\"\$concat_cmds\"
- else
-- eval cmds=\"\$concat_cmds~$old_archive_cmds\"
-+ eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
- fi
- fi
- fi
- save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
-+ eval cmd=\"$cmd\"
- IFS="$save_ifs"
- $show "$cmd"
- $run eval "$cmd" || exit $?
-@@ -5146,11 +5580,13 @@
- fi
- done
- # Quote the link command for shipping.
-- relink_command="(cd `pwd`; $SHELL $0 --mode=relink $libtool_args @inst_prefix_dir@)"
-+ relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
- relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
- if test "$hardcode_automatic" = yes ; then
-- relink_command=
-- fi
-+ relink_command=
-+ fi
-+
-+
- # Only create the output if not a dry run.
- if test -z "$run"; then
- for installed in no yes; do
-@@ -5168,7 +5604,7 @@
- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
- if test -z "$libdir"; then
- $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- fi
- newdependency_libs="$newdependency_libs $libdir/$name"
- ;;
-@@ -5182,7 +5618,7 @@
- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
- if test -z "$libdir"; then
- $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- fi
- newdlfiles="$newdlfiles $libdir/$name"
- done
-@@ -5193,11 +5629,30 @@
- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
- if test -z "$libdir"; then
- $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- fi
- newdlprefiles="$newdlprefiles $libdir/$name"
- done
- dlprefiles="$newdlprefiles"
-+ else
-+ newdlfiles=
-+ for lib in $dlfiles; do
-+ case $lib in
-+ [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
-+ *) abs=`pwd`"/$lib" ;;
-+ esac
-+ newdlfiles="$newdlfiles $abs"
-+ done
-+ dlfiles="$newdlfiles"
-+ newdlprefiles=
-+ for lib in $dlprefiles; do
-+ case $lib in
-+ [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
-+ *) abs=`pwd`"/$lib" ;;
-+ esac
-+ newdlprefiles="$newdlprefiles $abs"
-+ done
-+ dlprefiles="$newdlprefiles"
- fi
- $rm $output
- # place dlname in correct position for cygwin
-@@ -5241,7 +5696,7 @@
-
- # Directory that this library needs to be installed in:
- libdir='$install_libdir'"
-- if test "$installed" = no && test "$need_relink" = yes && test "$fast_install" = no; then
-+ if test "$installed" = no && test "$need_relink" = yes; then
- $echo >> $output "\
- relink_command=\"$relink_command\""
- fi
-@@ -5254,7 +5709,7 @@
- $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
- ;;
- esac
-- exit 0
-+ exit $EXIT_SUCCESS
- ;;
-
- # libtool install mode
-@@ -5265,11 +5720,11 @@
- # install_prog (especially on Windows NT).
- if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
- # Allow the use of GNU shtool's install command.
-- $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then
-+ $echo "X$nonopt" | grep shtool > /dev/null; then
- # Aesthetically quote it.
- arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
- case $arg in
-- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
-+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
- arg="\"$arg\""
- ;;
- esac
-@@ -5278,14 +5733,14 @@
- shift
- else
- install_prog=
-- arg="$nonopt"
-+ arg=$nonopt
- fi
-
- # The real first argument should be the name of the installation program.
- # Aesthetically quote it.
- arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
- case $arg in
-- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
-+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
- arg="\"$arg\""
- ;;
- esac
-@@ -5303,28 +5758,31 @@
- do
- if test -n "$dest"; then
- files="$files $dest"
-- dest="$arg"
-+ dest=$arg
- continue
- fi
-
- case $arg in
- -d) isdir=yes ;;
-- -f) prev="-f" ;;
-- -g) prev="-g" ;;
-- -m) prev="-m" ;;
-- -o) prev="-o" ;;
-+ -f)
-+ case " $install_prog " in
-+ *[\\\ /]cp\ *) ;;
-+ *) prev=$arg ;;
-+ esac
-+ ;;
-+ -g | -m | -o) prev=$arg ;;
- -s)
- stripme=" -s"
- continue
- ;;
-- -*) ;;
--
-+ -*)
-+ ;;
- *)
- # If the previous option needed an argument, then skip it.
- if test -n "$prev"; then
- prev=
- else
-- dest="$arg"
-+ dest=$arg
- continue
- fi
- ;;
-@@ -5333,7 +5791,7 @@
- # Aesthetically quote the argument.
- arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
- case $arg in
-- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
-+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
- arg="\"$arg\""
- ;;
- esac
-@@ -5343,13 +5801,13 @@
- if test -z "$install_prog"; then
- $echo "$modename: you must specify an install program" 1>&2
- $echo "$help" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- fi
-
- if test -n "$prev"; then
- $echo "$modename: the \`$prev' option requires an argument" 1>&2
- $echo "$help" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- fi
-
- if test -z "$files"; then
-@@ -5359,7 +5817,7 @@
- $echo "$modename: you must specify a destination" 1>&2
- fi
- $echo "$help" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- fi
-
- # Strip any trailing slash from the destination.
-@@ -5380,7 +5838,7 @@
- if test "$#" -gt 2; then
- $echo "$modename: \`$dest' is not a directory" 1>&2
- $echo "$help" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- fi
- fi
- case $destdir in
-@@ -5392,7 +5850,7 @@
- *)
- $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
- $echo "$help" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- ;;
- esac
- done
-@@ -5421,7 +5879,7 @@
- else
- $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
- $echo "$help" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- fi
-
- library_names=
-@@ -5463,7 +5921,7 @@
- # but it's something to keep an eye on.
- if test "$inst_prefix_dir" = "$destdir"; then
- $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- fi
-
- if test -n "$inst_prefix_dir"; then
-@@ -5478,7 +5936,7 @@
- if $run eval "$relink_command"; then :
- else
- $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- fi
- fi
-
-@@ -5502,23 +5960,36 @@
-
- if test "$#" -gt 0; then
- # Delete the old symlinks, and create new ones.
-+ # Try `ln -sf' first, because the `ln' binary might depend on
-+ # the symlink we replace! Solaris /bin/ln does not understand -f,
-+ # so we also need to try rm && ln -s.
- for linkname
- do
- if test "$linkname" != "$realname"; then
-- $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
-- $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
-+ $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
-+ $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
- fi
- done
- fi
-
- # Do each command in the postinstall commands.
- lib="$destdir/$realname"
-- eval cmds=\"$postinstall_cmds\"
-+ cmds=$postinstall_cmds
- save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
-+ eval cmd=\"$cmd\"
- $show "$cmd"
-- $run eval "$cmd" || exit $?
-+ $run eval "$cmd" || {
-+ lt_exit=$?
-+
-+ # Restore the uninstalled library and exit
-+ if test "$mode" = relink; then
-+ $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
-+ fi
-+
-+ exit $lt_exit
-+ }
- done
- IFS="$save_ifs"
- fi
-@@ -5556,7 +6027,7 @@
- *)
- $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
- $echo "$help" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- ;;
- esac
-
-@@ -5574,7 +6045,7 @@
- $show "$install_prog $staticobj $staticdest"
- $run eval "$install_prog \$staticobj \$staticdest" || exit $?
- fi
-- exit 0
-+ exit $EXIT_SUCCESS
- ;;
-
- *)
-@@ -5612,23 +6083,21 @@
- notinst_deplibs=
- relink_command=
-
-- # To insure that "foo" is sourced, and not "foo.exe",
-- # finese the cygwin/MSYS system by explicitly sourcing "foo."
-- # which disallows the automatic-append-.exe behavior.
-- case $build in
-- *cygwin* | *mingw*) wrapperdot=${wrapper}. ;;
-- *) wrapperdot=${wrapper} ;;
-- esac
-+ # Note that it is not necessary on cygwin/mingw to append a dot to
-+ # foo even if both foo and FILE.exe exist: automatic-append-.exe
-+ # behavior happens only for exec(3), not for open(2)! Also, sourcing
-+ # `FILE.' does not work on cygwin managed mounts.
-+ #
- # If there is no directory component, then add one.
-- case $file in
-- */* | *\\*) . ${wrapperdot} ;;
-- *) . ./${wrapperdot} ;;
-+ case $wrapper in
-+ */* | *\\*) . ${wrapper} ;;
-+ *) . ./${wrapper} ;;
- esac
-
- # Check the variables that should have been set.
- if test -z "$notinst_deplibs"; then
- $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- fi
-
- finalize=yes
-@@ -5650,30 +6119,21 @@
- done
-
- relink_command=
-- # To insure that "foo" is sourced, and not "foo.exe",
-- # finese the cygwin/MSYS system by explicitly sourcing "foo."
-- # which disallows the automatic-append-.exe behavior.
-- case $build in
-- *cygwin* | *mingw*) wrapperdot=${wrapper}. ;;
-- *) wrapperdot=${wrapper} ;;
-- esac
-+ # Note that it is not necessary on cygwin/mingw to append a dot to
-+ # foo even if both foo and FILE.exe exist: automatic-append-.exe
-+ # behavior happens only for exec(3), not for open(2)! Also, sourcing
-+ # `FILE.' does not work on cygwin managed mounts.
-+ #
- # If there is no directory component, then add one.
-- case $file in
-- */* | *\\*) . ${wrapperdot} ;;
-- *) . ./${wrapperdot} ;;
-+ case $wrapper in
-+ */* | *\\*) . ${wrapper} ;;
-+ *) . ./${wrapper} ;;
- esac
-
- outputname=
- if test "$fast_install" = no && test -n "$relink_command"; then
- if test "$finalize" = yes && test -z "$run"; then
-- tmpdir="/tmp"
-- test -n "$TMPDIR" && tmpdir="$TMPDIR"
-- tmpdir="$tmpdir/libtool-$$"
-- if $mkdir "$tmpdir" && chmod 700 "$tmpdir"; then :
-- else
-- $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
-- continue
-- fi
-+ tmpdir=`func_mktempdir`
- file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
- outputname="$tmpdir/$file"
- # Replace the output file specification.
-@@ -5697,7 +6157,7 @@
- fi
-
- # remove .exe since cygwin /usr/bin/install will append another
-- # one anyways
-+ # one anyway
- case $install_prog,$host in
- */usr/bin/install*,*cygwin*)
- case $file:$destfile in
-@@ -5729,16 +6189,17 @@
- $show "$install_prog $file $oldlib"
- $run eval "$install_prog \$file \$oldlib" || exit $?
-
-- if test -n "$stripme" && test -n "$striplib"; then
-+ if test -n "$stripme" && test -n "$old_striplib"; then
- $show "$old_striplib $oldlib"
- $run eval "$old_striplib $oldlib" || exit $?
- fi
-
- # Do each command in the postinstall commands.
-- eval cmds=\"$old_postinstall_cmds\"
-+ cmds=$old_postinstall_cmds
- save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
-+ eval cmd=\"$cmd\"
- $show "$cmd"
- $run eval "$cmd" || exit $?
- done
-@@ -5752,9 +6213,9 @@
- if test -n "$current_libdirs"; then
- # Maybe just do a dry run.
- test -n "$run" && current_libdirs=" -n$current_libdirs"
-- exec_cmd='$SHELL $0 --finish$current_libdirs'
-+ exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
- else
-- exit 0
-+ exit $EXIT_SUCCESS
- fi
- ;;
-
-@@ -5773,10 +6234,11 @@
- for libdir in $libdirs; do
- if test -n "$finish_cmds"; then
- # Do each command in the finish commands.
-- eval cmds=\"$finish_cmds\"
-+ cmds=$finish_cmds
- save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
-+ eval cmd=\"$cmd\"
- $show "$cmd"
- $run eval "$cmd" || admincmds="$admincmds
- $cmd"
-@@ -5793,9 +6255,9 @@
- fi
-
- # Exit here if they wanted silent mode.
-- exit 0
-+ test "$show" = : && exit $EXIT_SUCCESS
-
-- $echo "----------------------------------------------------------------------"
-+ $echo "X----------------------------------------------------------------------" | $Xsed
- $echo "Libraries have been installed in:"
- for libdir in $libdirs; do
- $echo " $libdir"
-@@ -5828,8 +6290,8 @@
- $echo
- $echo "See any operating system documentation about shared libraries for"
- $echo "more information, such as the ld(1) and ld.so(8) manual pages."
-- $echo "----------------------------------------------------------------------"
-- exit 0
-+ $echo "X----------------------------------------------------------------------" | $Xsed
-+ exit $EXIT_SUCCESS
- ;;
-
- # libtool execute mode
-@@ -5841,7 +6303,7 @@
- if test -z "$cmd"; then
- $echo "$modename: you must specify a COMMAND" 1>&2
- $echo "$help"
-- exit 1
-+ exit $EXIT_FAILURE
- fi
-
- # Handle -dlopen flags immediately.
-@@ -5849,7 +6311,7 @@
- if test ! -f "$file"; then
- $echo "$modename: \`$file' is not a file" 1>&2
- $echo "$help" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- fi
-
- dir=
-@@ -5860,7 +6322,7 @@
- else
- $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
- $echo "$help" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- fi
-
- # Read the libtool library.
-@@ -5887,7 +6349,7 @@
- dir="$dir/$objdir"
- else
- $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- fi
- ;;
-
-@@ -5967,7 +6429,7 @@
- $echo "export $shlibpath_var"
- fi
- $echo "$cmd$args"
-- exit 0
-+ exit $EXIT_SUCCESS
- fi
- ;;
-
-@@ -5995,7 +6457,7 @@
- if test -z "$rm"; then
- $echo "$modename: you must specify an RM program" 1>&2
- $echo "$help" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- fi
-
- rmdirs=
-@@ -6045,15 +6507,24 @@
- rmfiles="$rmfiles $objdir/$n"
- done
- test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
-- test "$mode" = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
-
-- if test "$mode" = uninstall; then
-+ case "$mode" in
-+ clean)
-+ case " $library_names " in
-+ # " " in the beginning catches empty $dlname
-+ *" $dlname "*) ;;
-+ *) rmfiles="$rmfiles $objdir/$dlname" ;;
-+ esac
-+ test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
-+ ;;
-+ uninstall)
- if test -n "$library_names"; then
- # Do each command in the postuninstall commands.
-- eval cmds=\"$postuninstall_cmds\"
-+ cmds=$postuninstall_cmds
- save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
-+ eval cmd=\"$cmd\"
- $show "$cmd"
- $run eval "$cmd"
- if test "$?" -ne 0 && test "$rmforce" != yes; then
-@@ -6065,10 +6536,11 @@
-
- if test -n "$old_library"; then
- # Do each command in the old_postuninstall commands.
-- eval cmds=\"$old_postuninstall_cmds\"
-+ cmds=$old_postuninstall_cmds
- save_ifs="$IFS"; IFS='~'
- for cmd in $cmds; do
- IFS="$save_ifs"
-+ eval cmd=\"$cmd\"
- $show "$cmd"
- $run eval "$cmd"
- if test "$?" -ne 0 && test "$rmforce" != yes; then
-@@ -6078,7 +6550,8 @@
- IFS="$save_ifs"
- fi
- # FIXME: should reinstall the best remaining shared library.
-- fi
-+ ;;
-+ esac
- fi
- ;;
-
-@@ -6107,7 +6580,7 @@
- if test "$mode" = clean ; then
- noexename=$name
- case $file in
-- *.exe)
-+ *.exe)
- file=`$echo $file|${SED} 's,.exe$,,'`
- noexename=`$echo $name|${SED} 's,.exe$,,'`
- # $file with .exe has already been added to rmfiles,
-@@ -6152,20 +6625,20 @@
- "")
- $echo "$modename: you must specify a MODE" 1>&2
- $echo "$generic_help" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- ;;
- esac
-
- if test -z "$exec_cmd"; then
- $echo "$modename: invalid operation mode \`$mode'" 1>&2
- $echo "$generic_help" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- fi
- fi # test -z "$show_help"
-
- if test -n "$exec_cmd"; then
- eval exec $exec_cmd
-- exit 1
-+ exit $EXIT_FAILURE
- fi
-
- # We need to display help for each of the modes.
-@@ -6201,7 +6674,7 @@
- a more detailed description of MODE.
-
- Report bugs to <bug-libtool@gnu.org>."
-- exit 0
-+ exit $EXIT_SUCCESS
- ;;
-
- clean)
-@@ -6313,6 +6786,8 @@
- -no-undefined declare that a library does not refer to external symbols
- -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
- -objectlist FILE Use a list of object files found in FILE to specify objects
-+ -precious-files-regex REGEX
-+ don't remove output files matching REGEX
- -release RELEASE specify package release information
- -rpath LIBDIR the created library will eventually be installed in LIBDIR
- -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
-@@ -6354,14 +6829,14 @@
- *)
- $echo "$modename: invalid operation mode \`$mode'" 1>&2
- $echo "$help" 1>&2
-- exit 1
-+ exit $EXIT_FAILURE
- ;;
- esac
-
- $echo
- $echo "Try \`$modename --help' for more information about other modes."
-
--exit 0
-+exit $?
-
- # The TAGs below are defined such that we never get into a situation
- # in which we disable both kinds of libraries. Given conflicting
-@@ -6375,12 +6850,11 @@
- # configuration. But we'll never go from static-only to shared-only.
-
- # ### BEGIN LIBTOOL TAG CONFIG: disable-shared
--build_libtool_libs=no
--build_old_libs=yes
-+disable_libs=shared
- # ### END LIBTOOL TAG CONFIG: disable-shared
-
- # ### BEGIN LIBTOOL TAG CONFIG: disable-static
--build_old_libs=`case $build_libtool_libs in yes) $echo no;; *) $echo yes;; esac`
-+disable_libs=static
- # ### END LIBTOOL TAG CONFIG: disable-static
-
- # Local Variables:
diff --git a/devel/kdevelop/files/patch-fix_qmake_parser b/devel/kdevelop/files/patch-fix_qmake_parser
deleted file mode 100644
index a0d8102928b6..000000000000
--- a/devel/kdevelop/files/patch-fix_qmake_parser
+++ /dev/null
@@ -1,6341 +0,0 @@
-diff -ruN buildtools/lib/parsers/qmake.orig/FlexLexer.h buildtools/lib/parsers/qmake/FlexLexer.h
---- buildtools/lib/parsers/qmake.orig/FlexLexer.h Thu Jan 1 01:00:00 1970
-+++ buildtools/lib/parsers/qmake/FlexLexer.h Thu Mar 22 21:48:49 2007
-@@ -0,0 +1,205 @@
-+
-+// -*-C++-*-
-+// FlexLexer.h -- define interfaces for lexical analyzer classes generated
-+// by flex
-+
-+// Copyright (c) 1993 The Regents of the University of California.
-+// All rights reserved.
-+//
-+// This code is derived from software contributed to Berkeley by
-+// Kent Williams and Tom Epperly.
-+//
-+// Redistribution and use in source and binary forms, with or without
-+// modification, are permitted provided that the following conditions
-+// are met:
-+
-+// 1. Redistributions of source code must retain the above copyright
-+// notice, this list of conditions and the following disclaimer.
-+// 2. Redistributions in binary form must reproduce the above copyright
-+// notice, this list of conditions and the following disclaimer in the
-+// documentation and/or other materials provided with the distribution.
-+
-+// Neither the name of the University nor the names of its contributors
-+// may be used to endorse or promote products derived from this software
-+// without specific prior written permission.
-+
-+// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
-+// IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
-+// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-+// PURPOSE.
-+
-+// This file defines FlexLexer, an abstract class which specifies the
-+// external interface provided to flex C++ lexer objects, and yyFlexLexer,
-+// which defines a particular lexer class.
-+//
-+// If you want to create multiple lexer classes, you use the -P flag
-+// to rename each yyFlexLexer to some other xxFlexLexer. You then
-+// include <FlexLexer.h> in your other sources once per lexer class:
-+//
-+// #undef yyFlexLexer
-+// #define yyFlexLexer xxFlexLexer
-+// #include <FlexLexer.h>
-+//
-+// #undef yyFlexLexer
-+// #define yyFlexLexer zzFlexLexer
-+// #include <FlexLexer.h>
-+// ...
-+
-+#ifndef __FLEX_LEXER_H
-+// Never included before - need to define base class.
-+#define __FLEX_LEXER_H
-+
-+#include <iostream>
-+# ifndef FLEX_STD
-+# define FLEX_STD std::
-+# endif
-+
-+extern "C++" {
-+
-+struct yy_buffer_state;
-+typedef int yy_state_type;
-+
-+class FlexLexer {
-+public:
-+ virtual ~FlexLexer() { }
-+
-+ const char* YYText() const { return yytext; }
-+ int YYLeng() const { return yyleng; }
-+
-+ virtual void
-+ yy_switch_to_buffer( struct yy_buffer_state* new_buffer ) = 0;
-+ virtual struct yy_buffer_state*
-+ yy_create_buffer( FLEX_STD istream* s, int size ) = 0;
-+ virtual void yy_delete_buffer( struct yy_buffer_state* b ) = 0;
-+ virtual void yyrestart( FLEX_STD istream* s ) = 0;
-+
-+ virtual int yylex() = 0;
-+
-+ // Call yylex with new input/output sources.
-+ int yylex( FLEX_STD istream* new_in, FLEX_STD ostream* new_out = 0 )
-+ {
-+ switch_streams( new_in, new_out );
-+ return yylex();
-+ }
-+
-+ // Switch to new input/output streams. A nil stream pointer
-+ // indicates "keep the current one".
-+ virtual void switch_streams( FLEX_STD istream* new_in = 0,
-+ FLEX_STD ostream* new_out = 0 ) = 0;
-+
-+ int lineno() const { return yylineno; }
-+
-+ int debug() const { return yy_flex_debug; }
-+ void set_debug( int flag ) { yy_flex_debug = flag; }
-+
-+protected:
-+ char* yytext;
-+ int yyleng;
-+ int yylineno; // only maintained if you use %option yylineno
-+ int yy_flex_debug; // only has effect with -d or "%option debug"
-+};
-+
-+}
-+#endif
-+
-+#if defined(yyFlexLexer) || ! defined(yyFlexLexerOnce)
-+// Either this is the first time through (yyFlexLexerOnce not defined),
-+// or this is a repeated include to define a different flavor of
-+// yyFlexLexer, as discussed in the flex man page.
-+#define yyFlexLexerOnce
-+
-+extern "C++" {
-+
-+class yyFlexLexer : public FlexLexer {
-+public:
-+ // arg_yyin and arg_yyout default to the cin and cout, but we
-+ // only make that assignment when initializing in yylex().
-+ yyFlexLexer( FLEX_STD istream* arg_yyin = 0, FLEX_STD ostream* arg_yyout = 0 );
-+
-+ virtual ~yyFlexLexer();
-+
-+ void yy_switch_to_buffer( struct yy_buffer_state* new_buffer );
-+ struct yy_buffer_state* yy_create_buffer( FLEX_STD istream* s, int size );
-+ void yy_delete_buffer( struct yy_buffer_state* b );
-+ void yyrestart( FLEX_STD istream* s );
-+
-+ void yypush_buffer_state( struct yy_buffer_state* new_buffer );
-+ void yypop_buffer_state(void);
-+
-+ virtual int yylex();
-+ virtual void switch_streams( FLEX_STD istream* new_in, FLEX_STD ostream* new_out );
-+
-+protected:
-+ virtual int LexerInput( char* buf, int max_size );
-+ virtual void LexerOutput( const char* buf, int size );
-+ virtual void LexerError( const char* msg );
-+
-+ void yyunput( int c, char* buf_ptr );
-+ int yyinput();
-+
-+ void yy_load_buffer_state();
-+ void yy_init_buffer( struct yy_buffer_state* b, FLEX_STD istream* s );
-+ void yy_flush_buffer( struct yy_buffer_state* b );
-+
-+ int yy_start_stack_ptr;
-+ int yy_start_stack_depth;
-+ int* yy_start_stack;
-+
-+ void yy_push_state( int new_state );
-+ void yy_pop_state();
-+ int yy_top_state();
-+
-+ yy_state_type yy_get_previous_state();
-+ yy_state_type yy_try_NUL_trans( yy_state_type current_state );
-+ int yy_get_next_buffer();
-+
-+ FLEX_STD istream* yyin; // input source for default LexerInput
-+ FLEX_STD ostream* yyout; // output sink for default LexerOutput
-+
-+ // yy_hold_char holds the character lost when yytext is formed.
-+ char yy_hold_char;
-+
-+ // Number of characters read into yy_ch_buf.
-+ int yy_n_chars;
-+
-+ // Points to current character in buffer.
-+ char* yy_c_buf_p;
-+
-+ int yy_init; // whether we need to initialize
-+ int yy_start; // start state number
-+
-+ // Flag which is used to allow yywrap()'s to do buffer switches
-+ // instead of setting up a fresh yyin. A bit of a hack ...
-+ int yy_did_buffer_switch_on_eof;
-+
-+
-+ size_t yy_buffer_stack_top; /**< index of top of stack. */
-+ size_t yy_buffer_stack_max; /**< capacity of stack. */
-+ struct yy_buffer_state ** yy_buffer_stack; /**< Stack as an array. */
-+ void yyensure_buffer_stack(void);
-+
-+ // The following are not always needed, but may be depending
-+ // on use of certain flex features (like REJECT or yymore()).
-+
-+ yy_state_type yy_last_accepting_state;
-+ char* yy_last_accepting_cpos;
-+
-+ yy_state_type* yy_state_buf;
-+ yy_state_type* yy_state_ptr;
-+
-+ char* yy_full_match;
-+ int* yy_full_state;
-+ int yy_full_lp;
-+
-+ int yy_lp;
-+ int yy_looking_for_trail_begin;
-+
-+ int yy_more_flag;
-+ int yy_more_len;
-+ int yy_more_offset;
-+ int yy_prev_more_offset;
-+};
-+
-+}
-+
-+#endif
-diff -u --exclude=.svn -Nur kdev_3.4.0.org/buildtools/lib/parsers/qmake/location.hh kdev_3.4.0/buildtools/lib/parsers/qmake/location.hh
---- buildtools/lib/parsers/qmake/location.hh 1970-01-01 01:00:00.000000000 +0100
-+++ buildtools/lib/parsers/qmake/location.hh 2007-02-07 20:35:17.000000000 +0100
-@@ -0,0 +1,145 @@
-+/* A Bison parser, made by GNU Bison 2.3. */
-+
-+/* Locations for Bison parsers in C++
-+
-+ Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify
-+ it under the terms of the GNU General Public License as published by
-+ the Free Software Foundation; either version 2, or (at your option)
-+ any later version.
-+
-+ This program is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ GNU General Public License for more details.
-+
-+ You should have received a copy of the GNU General Public License
-+ along with this program; if not, write to the Free Software
-+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
-+ Boston, MA 02110-1301, USA. */
-+
-+/* As a special exception, you may create a larger work that contains
-+ part or all of the Bison parser skeleton and distribute that work
-+ under terms of your choice, so long as that work isn't itself a
-+ parser generator using the skeleton or a modified version thereof
-+ as a parser skeleton. Alternatively, if you modify or redistribute
-+ the parser skeleton itself, you may (at your option) remove this
-+ special exception, which will cause the skeleton and the resulting
-+ Bison output files to be licensed under the GNU General Public
-+ License without this special exception.
-+
-+ This special exception was added by the Free Software Foundation in
-+ version 2.2 of Bison. */
-+
-+/**
-+ ** \file location.hh
-+ ** Define the QMake::location class.
-+ */
-+
-+#ifndef BISON_LOCATION_HH
-+# define BISON_LOCATION_HH
-+
-+# include <iostream>
-+# include <string>
-+# include "position.hh"
-+
-+namespace QMake
-+{
-+
-+ /// Abstract a location.
-+ class location
-+ {
-+ public:
-+
-+ /// Construct a location.
-+ location ()
-+ : begin (), end ()
-+ {
-+ }
-+
-+
-+ /// Initialization.
-+ inline void initialize (std::string* fn)
-+ {
-+ begin.initialize (fn);
-+ end = begin;
-+ }
-+
-+ /** \name Line and Column related manipulators
-+ ** \{ */
-+ public:
-+ /// Reset initial location to final location.
-+ inline void step ()
-+ {
-+ begin = end;
-+ }
-+
-+ /// Extend the current location to the COUNT next columns.
-+ inline void columns (unsigned int count = 1)
-+ {
-+ end += count;
-+ }
-+
-+ /// Extend the current location to the COUNT next lines.
-+ inline void lines (unsigned int count = 1)
-+ {
-+ end.lines (count);
-+ }
-+ /** \} */
-+
-+
-+ public:
-+ /// Beginning of the located region.
-+ position begin;
-+ /// End of the located region.
-+ position end;
-+ };
-+
-+ /// Join two location objects to create a location.
-+ inline const location operator+ (const location& begin, const location& end)
-+ {
-+ location res = begin;
-+ res.end = end.end;
-+ return res;
-+ }
-+
-+ /// Add two location objects.
-+ inline const location operator+ (const location& begin, unsigned int width)
-+ {
-+ location res = begin;
-+ res.columns (width);
-+ return res;
-+ }
-+
-+ /// Add and assign a location.
-+ inline location& operator+= (location& res, unsigned int width)
-+ {
-+ res.columns (width);
-+ return res;
-+ }
-+
-+ /** \brief Intercept output stream redirection.
-+ ** \param ostr the destination output stream
-+ ** \param loc a reference to the location to redirect
-+ **
-+ ** Avoid duplicate information.
-+ */
-+ inline std::ostream& operator<< (std::ostream& ostr, const location& loc)
-+ {
-+ position last = loc.end - 1;
-+ ostr << loc.begin;
-+ if (last.filename
-+ && (!loc.begin.filename
-+ || *loc.begin.filename != *last.filename))
-+ ostr << '-' << last;
-+ else if (loc.begin.line != last.line)
-+ ostr << '-' << last.line << '.' << last.column;
-+ else if (loc.begin.column != last.column)
-+ ostr << '-' << last.column;
-+ return ostr;
-+ }
-+
-+}
-+
-+#endif // not BISON_LOCATION_HH
-diff -ruN buildtools/lib/parsers/qmake.orig/Makefile.in buildtools/lib/parsers/qmake/Makefile.in
---- buildtools/lib/parsers/qmake.orig/Makefile.in Thu Jan 25 15:48:03 2007
-+++ buildtools/lib/parsers/qmake/Makefile.in Thu Mar 22 21:48:26 2007
-@@ -1,4 +1,4 @@
--# Makefile.in generated by automake 1.9.5 from Makefile.am.
-+# Makefile.in generated by automake 1.9.6 from Makefile.am.
- # KDE tags expanded automatically by am_edit - $Revision: 483858 $
- # @configure_input@
-
-@@ -22,8 +22,6 @@
- #SUBDIRS = tests
-
-
--SOURCES = $(libkdevqmakeparser_la_SOURCES)
--
- srcdir = @srcdir@
- top_srcdir = @top_srcdir@
- VPATH = @srcdir@
-@@ -47,7 +45,7 @@
- build_triplet = @build@
- host_triplet = @host@
- target_triplet = @target@
--DIST_COMMON = $(kdevelopbuildtoolsinclude_HEADERS) \
-+DIST_COMMON = $(kdevelopbuildtoolsinclude_HEADERS) $(noinst_HEADERS) \
- $(srcdir)/../../../../Doxyfile.am $(srcdir)/Makefile.am \
- $(srcdir)/Makefile.in
- subdir = buildtools/lib/parsers/qmake
-@@ -70,13 +68,13 @@
- libLTLIBRARIES_INSTALL = $(INSTALL)
- LTLIBRARIES = $(lib_LTLIBRARIES)
- libkdevqmakeparser_la_LIBADD =
--am_libkdevqmakeparser_la_OBJECTS = qmakeast.lo qmakedriver.lo \
-- qmake_yacc.lo qmakeastvisitor.lo
-+am_libkdevqmakeparser_la_OBJECTS = qmake_lex.lo qmake_yacc.lo \
-+ qmakeast.lo qmakeastvisitor.lo qmakedriver.lo
- #>- libkdevqmakeparser_la_OBJECTS = $(am_libkdevqmakeparser_la_OBJECTS)
- #>+ 5
- libkdevqmakeparser_la_final_OBJECTS = libkdevqmakeparser_la.all_cpp.lo
--libkdevqmakeparser_la_nofinal_OBJECTS = qmakeast.lo qmakedriver.lo \
-- qmake_yacc.lo qmakeastvisitor.lo
-+libkdevqmakeparser_la_nofinal_OBJECTS = qmake_lex.lo qmake_yacc.lo \
-+ qmakeast.lo qmakeastvisitor.lo qmakedriver.lo
- @KDE_USE_FINAL_FALSE@libkdevqmakeparser_la_OBJECTS = $(libkdevqmakeparser_la_nofinal_OBJECTS)
- @KDE_USE_FINAL_TRUE@libkdevqmakeparser_la_OBJECTS = $(libkdevqmakeparser_la_final_OBJECTS)
- DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
-@@ -103,7 +101,7 @@
- SOURCES = $(libkdevqmakeparser_la_SOURCES)
- DIST_SOURCES = $(libkdevqmakeparser_la_SOURCES)
- kdevelopbuildtoolsincludeHEADERS_INSTALL = $(INSTALL_HEADER)
--HEADERS = $(kdevelopbuildtoolsinclude_HEADERS)
-+HEADERS = $(kdevelopbuildtoolsinclude_HEADERS) $(noinst_HEADERS)
- ETAGS = etags
- CTAGS = ctags
- #>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-@@ -131,9 +129,6 @@
- CXXDEPMODE = @CXXDEPMODE@
- CXXFLAGS = @CXXFLAGS@
- CYGPATH_W = @CYGPATH_W@
--DB3INCLUDES = @DB3INCLUDES@
--DB3LDFLAGS = @DB3LDFLAGS@
--DB3LIB = @DB3LIB@
- DCOPIDL = @DCOPIDL@
- DCOPIDL2CPP = @DCOPIDL2CPP@
- DCOPIDLNG = @DCOPIDLNG@
-@@ -300,7 +295,15 @@
- build_cpu = @build_cpu@
- build_os = @build_os@
- build_vendor = @build_vendor@
-+buildtools_SUBDIR_included_FALSE = @buildtools_SUBDIR_included_FALSE@
-+buildtools_SUBDIR_included_TRUE = @buildtools_SUBDIR_included_TRUE@
- datadir = @datadir@
-+doc_SUBDIR_included_FALSE = @doc_SUBDIR_included_FALSE@
-+doc_SUBDIR_included_TRUE = @doc_SUBDIR_included_TRUE@
-+editors_SUBDIR_included_FALSE = @editors_SUBDIR_included_FALSE@
-+editors_SUBDIR_included_TRUE = @editors_SUBDIR_included_TRUE@
-+embedded_SUBDIR_included_FALSE = @embedded_SUBDIR_included_FALSE@
-+embedded_SUBDIR_included_TRUE = @embedded_SUBDIR_included_TRUE@
- exec_prefix = @exec_prefix@
- gmake_prog = @gmake_prog@
- host = @host@
-@@ -384,19 +387,32 @@
- kde_wallpaperdir = @kde_wallpaperdir@
- kde_widgetdir = @kde_widgetdir@
- kdeinitdir = @kdeinitdir@
--kdelibs_doxydir = @kdelibs_doxydir@
-+kdevdesigner_SUBDIR_included_FALSE = @kdevdesigner_SUBDIR_included_FALSE@
-+kdevdesigner_SUBDIR_included_TRUE = @kdevdesigner_SUBDIR_included_TRUE@
-+languages_SUBDIR_included_FALSE = @languages_SUBDIR_included_FALSE@
-+languages_SUBDIR_included_TRUE = @languages_SUBDIR_included_TRUE@
-+lib_SUBDIR_included_FALSE = @lib_SUBDIR_included_FALSE@
-+lib_SUBDIR_included_TRUE = @lib_SUBDIR_included_TRUE@
- libdir = @libdir@
- libexecdir = @libexecdir@
- localstatedir = @localstatedir@
- mandir = @mandir@
-+mimetypes_SUBDIR_included_FALSE = @mimetypes_SUBDIR_included_FALSE@
-+mimetypes_SUBDIR_included_TRUE = @mimetypes_SUBDIR_included_TRUE@
- mkdir_p = @mkdir_p@
- oldincludedir = @oldincludedir@
-+parts_SUBDIR_included_FALSE = @parts_SUBDIR_included_FALSE@
-+parts_SUBDIR_included_TRUE = @parts_SUBDIR_included_TRUE@
-+pics_SUBDIR_included_FALSE = @pics_SUBDIR_included_FALSE@
-+pics_SUBDIR_included_TRUE = @pics_SUBDIR_included_TRUE@
- prefix = @prefix@
- program_transform_name = @program_transform_name@
- qt_includes = @qt_includes@
- qt_libraries = @qt_libraries@
- sbindir = @sbindir@
- sharedstatedir = @sharedstatedir@
-+src_SUBDIR_included_FALSE = @src_SUBDIR_included_FALSE@
-+src_SUBDIR_included_TRUE = @src_SUBDIR_included_TRUE@
- sysconfdir = @sysconfdir@
- tar = @tar@
- target = @target@
-@@ -406,6 +422,8 @@
- target_vendor = @target_vendor@
- unsermake_enable_pch_FALSE = @unsermake_enable_pch_FALSE@
- unsermake_enable_pch_TRUE = @unsermake_enable_pch_TRUE@
-+vcs_SUBDIR_included_FALSE = @vcs_SUBDIR_included_FALSE@
-+vcs_SUBDIR_included_TRUE = @vcs_SUBDIR_included_TRUE@
- x_includes = @x_includes@
- x_libraries = @x_libraries@
- xdg_appsdir = @xdg_appsdir@
-@@ -420,8 +438,8 @@
- #>- libkdevqmakeparser_la_LDFLAGS = -no-undefined $(all_libraries) $(LIB_KIO)
- #>+ 1
- libkdevqmakeparser_la_LDFLAGS = -no-undefined $(KDE_NO_UNDEFINED) $(all_libraries) $(LIB_KIO)
--libkdevqmakeparser_la_SOURCES = qmakeast.cpp qmakedriver.cpp qmake_yacc.cpp \
-- qmakeastvisitor.cpp
-+libkdevqmakeparser_la_SOURCES = qmake_lex.cpp qmake_yacc.cpp qmakeast.cpp \
-+ qmakeastvisitor.cpp qmakedriver.cpp
-
- kdevelopbuildtoolsincludedir = $(includedir)/kdevelop/buildtools/parsers/qmake
- kdevelopbuildtoolsinclude_HEADERS = qmakeast.h qmakedriver.h qmakeastvisitor.h
-@@ -429,6 +447,7 @@
- DOXYGEN_REFERENCES = dcop interfaces kdecore kdefx kdeui khtml kmdi kio kjs kparts kutils
- DOXYGEN_PROJECTNAME = KDevelop QMake parser
- DOXYGEN_DOCDIRPREFIX = kdevparser
-+noinst_HEADERS = qmake_lex.h
- #>- all: all-am
- #>+ 1
- all: docs-am all-am
-@@ -444,9 +463,9 @@
- #>- exit 1;; \
- #>- esac; \
- #>- done; \
--#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign buildtools/lib/parsers/qmake/Makefile'; \
-+#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu buildtools/lib/parsers/qmake/Makefile'; \
- #>- cd $(top_srcdir) && \
--#>- $(AUTOMAKE) --foreign buildtools/lib/parsers/qmake/Makefile
-+#>- $(AUTOMAKE) --gnu buildtools/lib/parsers/qmake/Makefile
- #>+ 12
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
-@@ -456,9 +475,9 @@
- exit 1;; \
- esac; \
- done; \
-- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign buildtools/lib/parsers/qmake/Makefile'; \
-+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu buildtools/lib/parsers/qmake/Makefile'; \
- cd $(top_srcdir) && \
-- $(AUTOMAKE) --foreign buildtools/lib/parsers/qmake/Makefile
-+ $(AUTOMAKE) --gnu buildtools/lib/parsers/qmake/Makefile
- cd $(top_srcdir) && perl admin/am_edit buildtools/lib/parsers/qmake/Makefile.in
- .PRECIOUS: Makefile
- Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-@@ -516,6 +535,7 @@
- distclean-compile:
- -rm -f *.tab.c
-
-+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/qmake_lex.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/qmake_yacc.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/qmakeast.Plo@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/qmakeastvisitor.Plo@am__quote@
-@@ -753,14 +773,12 @@
-
- parser:
- cd $(srcdir) ; \
-- bison -d qmake.yy -o qmake_yacc.cpp ; \
-- mv -f qmake_yacc.hpp qmake_yacc.h ; \
-+ bison -d qmake.yy -oqmake_yacc.cpp ; \
- flex -oqmake_lex.cpp qmake.ll
-
- parser_dbg:
- cd $(srcdir) ; \
-- bison -d qmake.yy -r all -k -t -o qmake_yacc.cpp ; \
-- mv -f qmake_yacc.hpp qmake_yacc.h ; \
-+ bison -d qmake.yy -r all -k -t -oqmake_yacc.cpp ; \
- flex -d -oqmake_lex.cpp qmake.ll
- apidox-am-yes:
- @if test -z "$(DOXYGEN_EMPTY)"; then \
-@@ -958,7 +976,7 @@
-
-
- #>+ 2
--KDE_DIST=qmake_lex.cpp Mainpage.dox qmake_yacc.h Makefile.in Makefile.am
-+KDE_DIST=location.hh qmake_yacc.hpp position.hh Mainpage.dox stack.hh Makefile.in Makefile.am
-
- #>+ 3
- clean-closures:
-@@ -977,9 +995,9 @@
- exit 1;; \
- esac; \
- done; \
-- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign buildtools/lib/parsers/qmake/Makefile'; \
-+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu buildtools/lib/parsers/qmake/Makefile'; \
- cd $(top_srcdir) && \
-- $(AUTOMAKE) --foreign buildtools/lib/parsers/qmake/Makefile
-+ $(AUTOMAKE) --gnu buildtools/lib/parsers/qmake/Makefile
- cd $(top_srcdir) && perl admin/am_edit buildtools/lib/parsers/qmake/Makefile.in
-
-
-@@ -990,7 +1008,7 @@
- bcheck: bcheck-am
-
- bcheck-am:
-- @for i in $(kdevelopbuildtoolsinclude_HEADERS); do \
-+ @for i in $(kdevelopbuildtoolsinclude_HEADERS) ; do \
- if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
- echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
- echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
-@@ -1006,11 +1024,11 @@
-
-
- #>+ 11
--libkdevqmakeparser_la.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/qmakeast.cpp $(srcdir)/qmakedriver.cpp $(srcdir)/qmake_yacc.cpp $(srcdir)/qmakeastvisitor.cpp
-+libkdevqmakeparser_la.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/qmake_lex.cpp $(srcdir)/qmake_yacc.cpp $(srcdir)/qmakeast.cpp $(srcdir)/qmakeastvisitor.cpp $(srcdir)/qmakedriver.cpp
- @echo 'creating libkdevqmakeparser_la.all_cpp.cpp ...'; \
- rm -f libkdevqmakeparser_la.all_cpp.files libkdevqmakeparser_la.all_cpp.final; \
- echo "#define KDE_USE_FINAL 1" >> libkdevqmakeparser_la.all_cpp.final; \
-- for file in qmakeast.cpp qmakedriver.cpp qmake_yacc.cpp qmakeastvisitor.cpp ; do \
-+ for file in qmake_lex.cpp qmake_yacc.cpp qmakeast.cpp qmakeastvisitor.cpp qmakedriver.cpp ; do \
- echo "#include \"$$file\"" >> libkdevqmakeparser_la.all_cpp.files; \
- test ! -f $(srcdir)/$$file || egrep '^#pragma +implementation' $(srcdir)/$$file >> libkdevqmakeparser_la.all_cpp.final; \
- done; \
-diff -u --exclude=.svn -Nur kdev_3.4.0.org/buildtools/lib/parsers/qmake/position.hh kdev_3.4.0/buildtools/lib/parsers/qmake/position.hh
---- buildtools/lib/parsers/qmake/position.hh 1970-01-01 01:00:00.000000000 +0100
-+++ buildtools/lib/parsers/qmake/position.hh 2007-02-07 20:35:14.000000000 +0100
-@@ -0,0 +1,142 @@
-+/* A Bison parser, made by GNU Bison 2.3. */
-+
-+/* Positions for Bison parsers in C++
-+
-+ Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify
-+ it under the terms of the GNU General Public License as published by
-+ the Free Software Foundation; either version 2, or (at your option)
-+ any later version.
-+
-+ This program is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ GNU General Public License for more details.
-+
-+ You should have received a copy of the GNU General Public License
-+ along with this program; if not, write to the Free Software
-+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
-+ Boston, MA 02110-1301, USA. */
-+
-+/* As a special exception, you may create a larger work that contains
-+ part or all of the Bison parser skeleton and distribute that work
-+ under terms of your choice, so long as that work isn't itself a
-+ parser generator using the skeleton or a modified version thereof
-+ as a parser skeleton. Alternatively, if you modify or redistribute
-+ the parser skeleton itself, you may (at your option) remove this
-+ special exception, which will cause the skeleton and the resulting
-+ Bison output files to be licensed under the GNU General Public
-+ License without this special exception.
-+
-+ This special exception was added by the Free Software Foundation in
-+ version 2.2 of Bison. */
-+
-+/**
-+ ** \file position.hh
-+ ** Define the QMake::position class.
-+ */
-+
-+#ifndef BISON_POSITION_HH
-+# define BISON_POSITION_HH
-+
-+# include <iostream>
-+# include <string>
-+
-+namespace QMake
-+{
-+ /// Abstract a position.
-+ class position
-+ {
-+ public:
-+
-+ /// Construct a position.
-+ position ()
-+ : filename (0), line (1), column (0)
-+ {
-+ }
-+
-+
-+ /// Initialization.
-+ inline void initialize (std::string* fn)
-+ {
-+ filename = fn;
-+ line = 1;
-+ column = 0;
-+ }
-+
-+ /** \name Line and Column related manipulators
-+ ** \{ */
-+ public:
-+ /// (line related) Advance to the COUNT next lines.
-+ inline void lines (int count = 1)
-+ {
-+ column = 0;
-+ line += count;
-+ }
-+
-+ /// (column related) Advance to the COUNT next columns.
-+ inline void columns (int count = 1)
-+ {
-+ int leftmost = 0;
-+ int current = column;
-+ if (leftmost <= current + count)
-+ column += count;
-+ else
-+ column = 0;
-+ }
-+ /** \} */
-+
-+ public:
-+ /// File name to which this position refers.
-+ std::string* filename;
-+ /// Current line number.
-+ unsigned int line;
-+ /// Current column number.
-+ unsigned int column;
-+ };
-+
-+ /// Add and assign a position.
-+ inline const position&
-+ operator+= (position& res, const int width)
-+ {
-+ res.columns (width);
-+ return res;
-+ }
-+
-+ /// Add two position objects.
-+ inline const position
-+ operator+ (const position& begin, const int width)
-+ {
-+ position res = begin;
-+ return res += width;
-+ }
-+
-+ /// Add and assign a position.
-+ inline const position&
-+ operator-= (position& res, const int width)
-+ {
-+ return res += -width;
-+ }
-+
-+ /// Add two position objects.
-+ inline const position
-+ operator- (const position& begin, const int width)
-+ {
-+ return begin + -width;
-+ }
-+
-+ /** \brief Intercept output stream redirection.
-+ ** \param ostr the destination output stream
-+ ** \param pos a reference to the position to redirect
-+ */
-+ inline std::ostream&
-+ operator<< (std::ostream& ostr, const position& pos)
-+ {
-+ if (pos.filename)
-+ ostr << *pos.filename << ':';
-+ return ostr << pos.line << '.' << pos.column;
-+ }
-+
-+}
-+#endif // not BISON_POSITION_HH
-diff -u --exclude=.svn -Nur kdev_3.4.0.org/buildtools/lib/parsers/qmake/qmakedriver.cpp kdev_3.4.0/buildtools/lib/parsers/qmake/qmakedriver.cpp
---- buildtools/lib/parsers/qmake/qmakedriver.cpp 2007-02-07 21:15:37.000000000 +0100
-+++ buildtools/lib/parsers/qmake/qmakedriver.cpp 2007-02-07 20:49:28.000000000 +0100
-@@ -20,57 +20,67 @@
- #include "qmakedriver.h"
- #include "qmakeast.h"
-
--#include <stdio.h>
- #include <qvaluestack.h>
- #include <kio/netaccess.h>
-
--extern FILE *yyin, *yyout;
--extern int yyparse();
--extern int yydebug;
--typedef struct yy_buffer_state *YY_BUFFER_STATE;
--extern YY_BUFFER_STATE yy_scan_string(const char*);
--extern void yy_delete_buffer(YY_BUFFER_STATE);
--extern QValueStack<QMake::ProjectAST *> projects;
-+#include <iostream>
-+#include <fstream>
-+#include <sstream>
-+
-+#include "qmake_lex.h"
-+#include "qmake_yacc.hpp"
-
- namespace QMake {
-
--int Driver::parseFile(const char *fileName, ProjectAST **ast)
-+int Driver::parseFile(const char *fileName, ProjectAST **ast, int debug)
- {
-- yyin = fopen(fileName, "r");
-- if (yyin == 0)
-+ std::ifstream inf( fileName, std::ios::in );
-+ if ( !inf.is_open() )
- {
- *ast = 0;
- return 1;
- }
- // yydebug = 1;
-- int ret = yyparse();
-- *ast = projects.top();
-+ Lexer l(&inf);
-+ l.set_debug(debug);
-+ int depth = 0;
-+ QValueStack<ProjectAST*> stack;
-+ Parser p(&l, stack, depth);
-+ p.set_debug_level(debug);
-+ int ret = p.parse();
-+ *ast = stack.top();
- (*ast)->setFileName(fileName);
- return ret;
- }
-
--int Driver::parseFile(QString fileName, ProjectAST **ast)
-+int Driver::parseFile(QString fileName, ProjectAST **ast, int debug)
- {
-- return parseFile(fileName.ascii(), ast);
-+ return parseFile(fileName.ascii(), ast, debug);
- }
-
--int Driver::parseFile(KURL fileName, ProjectAST **ast)
-+int Driver::parseFile(KURL fileName, ProjectAST **ast, int debug)
- {
- QString tmpFile;
- int ret = 0;
- if (KIO::NetAccess::download(fileName, tmpFile, 0))
-- ret = parseFile(tmpFile, ast);
-+ ret = parseFile(tmpFile, ast, debug);
- KIO::NetAccess::removeTempFile(tmpFile);
- return ret;
- }
-
--int Driver::parseString( const char* string, ProjectAST **ast )
-+int Driver::parseString( const char* string, ProjectAST **ast, int debug )
- {
-- YY_BUFFER_STATE state = yy_scan_string( string );
-- int ret = yyparse();
-- *ast = projects.top();
-+ std::istringstream ins;
-+ ins.str(string);
-+ Lexer l(&ins);
-+ l.set_debug(debug);
-+ int depth = 0;
-+ QValueStack<ProjectAST*> stack;
-+ Parser p(&l, stack, depth);
-+ p.set_debug_level(debug);
-+ int ret = p.parse();
-+ *ast = stack.top();
- (*ast)->setFileName("");
-- yy_delete_buffer( state );
- return ret;
- }
-
-diff -u --exclude=.svn -Nur kdev_3.4.0.org/buildtools/lib/parsers/qmake/qmakedriver.h kdev_3.4.0/buildtools/lib/parsers/qmake/qmakedriver.h
---- buildtools/lib/parsers/qmake/qmakedriver.h 2007-02-07 21:15:37.000000000 +0100
-+++ buildtools/lib/parsers/qmake/qmakedriver.h 2007-02-07 20:35:13.000000000 +0100
-@@ -20,10 +20,8 @@
- #ifndef QMAKEQMAKEDRIVER_H
- #define QMAKEQMAKEDRIVER_H
-
--#include "qmakeast.h"
--
--#include <qvaluelist.h>
--#include <kurl.h>
-+class QString;
-+class KURL;
-
- namespace QMake {
-
-@@ -45,26 +43,11 @@
- initialize it on its own.
- @return The result of parsing. Result is 0 on success and <> 0 on failure.
- */
-- static int parseFile(const char *fileName, ProjectAST **ast);
-- static int parseFile(QString fileName, ProjectAST **ast);
-- static int parseFile(KURL fileName, ProjectAST **ast);
-- static int parseString(const char* string, ProjectAST **ast);
--
--/* template<class Op>
-- static void walkAST(Op &op, const ProjectAST *ast)
-- {
--// op(ast);
-- for (QValueList<QMake::AST*>::const_iterator it = ast->statements.constBegin();
-- it != ast->statements.constEnd(); ++it)
-- {
-- const AST *child = *it;
-- if (child->nodeType() == AST::ProjectAST)
-- walkAST<Op>(op, static_cast<const QMake::ProjectAST*>(child));
-- else
-- op(child);
-- }
-- }
--*/
-+ static int parseFile(const char *fileName, ProjectAST **ast, int debug);
-+ static int parseFile(QString fileName, ProjectAST **ast, int debug);
-+ static int parseFile(KURL fileName, ProjectAST **ast, int debug);
-+ static int parseString(const char* string, ProjectAST **ast, int debug);
-+
- };
-
- }
-diff -u --exclude=.svn -Nur kdev_3.4.0.org/buildtools/lib/parsers/qmake/qmake_lex.cpp kdev_3.4.0/buildtools/lib/parsers/qmake/qmake_lex.cpp
---- buildtools/lib/parsers/qmake/qmake_lex.cpp 2007-02-07 21:15:37.000000000 +0100
-+++ buildtools/lib/parsers/qmake/qmake_lex.cpp 2007-02-07 20:35:11.000000000 +0100
-@@ -14,13 +14,17 @@
- #define FLEX_BETA
- #endif
-
-+ /* The c++ scanner is a mess. The FlexLexer.h header file relies on the
-+ * following macro. This is required in order to pass the c++-multiple-scanners
-+ * test in the regression suite. We get reports that it breaks inheritance.
-+ * We will address this in a future release of flex, or omit the C++ scanner
-+ * altogether.
-+ */
-+ #define yyFlexLexer yyFlexLexer
-+
- /* First, we deal with platform-specific or compiler-specific issues. */
-
- /* begin standard C headers. */
--#include <stdio.h>
--#include <string.h>
--#include <errno.h>
--#include <stdlib.h>
-
- /* end standard C headers. */
-
-@@ -87,6 +91,13 @@
-
- #endif /* ! FLEXINT_H */
-
-+/* begin standard C++ headers. */
-+#include <iostream>
-+#include <errno.h>
-+#include <cstdlib>
-+#include <cstring>
-+/* end standard C++ headers. */
-+
- #ifdef __cplusplus
-
- /* The "const" storage-class-modifier is valid. */
-@@ -134,7 +145,7 @@
- #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
-
- /* Special action meaning "start processing a new file". */
--#define YY_NEW_FILE yyrestart(yyin )
-+#define YY_NEW_FILE yyrestart( yyin )
-
- #define YY_END_OF_BUFFER_CHAR 0
-
-@@ -154,13 +165,24 @@
-
- extern int yyleng;
-
--extern FILE *yyin, *yyout;
--
- #define EOB_ACT_CONTINUE_SCAN 0
- #define EOB_ACT_END_OF_FILE 1
- #define EOB_ACT_LAST_MATCH 2
-
-- #define YY_LESS_LINENO(n)
-+ /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
-+ * access to the local variable yy_act. Since yyless() is a macro, it would break
-+ * existing scanners that call yyless() from OUTSIDE yylex.
-+ * One obvious solution it to make yy_act a global. I tried that, and saw
-+ * a 5% performance hit in a non-yylineno scanner, because yy_act is
-+ * normally declared as a register variable-- so it is not worth it.
-+ */
-+ #define YY_LESS_LINENO(n) \
-+ do { \
-+ int yyl;\
-+ for ( yyl = n; yyl < yyleng; ++yyl )\
-+ if ( yytext[yyl] == '\n' )\
-+ --yylineno;\
-+ }while(0)
-
- /* Return all but the first "n" matched characters back to the input stream. */
- #define yyless(n) \
-@@ -192,7 +214,8 @@
- #define YY_STRUCT_YY_BUFFER_STATE
- struct yy_buffer_state
- {
-- FILE *yy_input_file;
-+
-+ std::istream* yy_input_file;
-
- char *yy_ch_buf; /* input buffer */
- char *yy_buf_pos; /* current position in input buffer */
-@@ -253,11 +276,6 @@
- };
- #endif /* !YY_STRUCT_YY_BUFFER_STATE */
-
--/* Stack of input buffers. */
--static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
--static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
--static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
--
- /* We provide macros for accessing buffer states in case in the
- * future we want to put the buffer states in a more general
- * "scanner state".
-@@ -273,39 +291,6 @@
- */
- #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
-
--/* yy_hold_char holds the character lost when yytext is formed. */
--static char yy_hold_char;
--static int yy_n_chars; /* number of characters read into yy_ch_buf */
--int yyleng;
--
--/* Points to current character in buffer. */
--static char *yy_c_buf_p = (char *) 0;
--static int yy_init = 0; /* whether we need to initialize */
--static int yy_start = 0; /* start state number */
--
--/* Flag which is used to allow yywrap()'s to do buffer switches
-- * instead of setting up a fresh yyin. A bit of a hack ...
-- */
--static int yy_did_buffer_switch_on_eof;
--
--void yyrestart (FILE *input_file );
--void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer );
--YY_BUFFER_STATE yy_create_buffer (FILE *file,int size );
--void yy_delete_buffer (YY_BUFFER_STATE b );
--void yy_flush_buffer (YY_BUFFER_STATE b );
--void yypush_buffer_state (YY_BUFFER_STATE new_buffer );
--void yypop_buffer_state (void );
--
--static void yyensure_buffer_stack (void );
--static void yy_load_buffer_state (void );
--static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file );
--
--#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
--
--YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size );
--YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str );
--YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len );
--
- void *yyalloc (yy_size_t );
- void *yyrealloc (void *,yy_size_t );
- void yyfree (void * );
-@@ -317,7 +302,7 @@
- if ( ! YY_CURRENT_BUFFER ){ \
- yyensure_buffer_stack (); \
- YY_CURRENT_BUFFER_LVALUE = \
-- yy_create_buffer(yyin,YY_BUF_SIZE ); \
-+ yy_create_buffer( yyin, YY_BUF_SIZE ); \
- } \
- YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
- }
-@@ -327,7 +312,7 @@
- if ( ! YY_CURRENT_BUFFER ){\
- yyensure_buffer_stack (); \
- YY_CURRENT_BUFFER_LVALUE = \
-- yy_create_buffer(yyin,YY_BUF_SIZE ); \
-+ yy_create_buffer( yyin, YY_BUF_SIZE ); \
- } \
- YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
- }
-@@ -341,21 +326,17 @@
-
- typedef unsigned char YY_CHAR;
-
--FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
--
--typedef int yy_state_type;
--
--extern int yylineno;
--
--int yylineno = 1;
--
--extern char *yytext;
- #define yytext_ptr yytext
-+#define YY_INTERACTIVE
-
--static yy_state_type yy_get_previous_state (void );
--static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
--static int yy_get_next_buffer (void );
--static void yy_fatal_error (yyconst char msg[] );
-+#include <FlexLexer.h>
-+int yyFlexLexer::yylex()
-+ {
-+ LexerError( "yyFlexLexer::yylex invoked but %option yyclass used" );
-+ return 0;
-+ }
-+
-+#define YY_DECL int QMake::Lexer::yylex()
-
- /* Done after the current pattern has been matched and before the
- * corresponding action - sets up yytext.
-@@ -376,24 +357,25 @@
- flex_int32_t yy_verify;
- flex_int32_t yy_nxt;
- };
--static yyconst flex_int16_t yy_accept[79] =
-+static yyconst flex_int16_t yy_accept[83] =
- { 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 25, 24,
- 1, 22, 5, 23, 19, 20, 5, 24, 5, 21,
- 11, 24, 16, 18, 24, 9, 2, 9, 9, 24,
- 2, 2, 6, 2, 24, 8, 1, 5, 5, 23,
-- 14, 12, 13, 0, 17, 0, 4, 15, 9, 0,
-- 2, 0, 9, 0, 9, 0, 7, 0, 3, 2,
-- 3, 2, 6, 6, 6, 6, 2, 3, 0, 8,
-- 9, 0, 9, 0, 0, 10, 0, 0
-+ 14, 12, 13, 0, 17, 0, 4, 4, 15, 9,
-+ 0, 2, 0, 9, 0, 0, 9, 0, 7, 7,
-+ 0, 3, 2, 3, 2, 6, 6, 6, 6, 2,
-+ 3, 0, 8, 9, 0, 9, 0, 0, 10, 0,
-+ 7, 0
- } ;
-
- static yyconst flex_int32_t yy_ec[256] =
- { 0,
- 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
-+ 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-- 1, 4, 5, 6, 7, 8, 1, 1, 1, 9,
-+ 1, 2, 5, 6, 7, 8, 1, 1, 1, 9,
- 10, 11, 12, 1, 13, 14, 1, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 16, 1, 1,
- 17, 1, 1, 1, 18, 18, 18, 18, 18, 18,
-@@ -422,122 +404,104 @@
-
- static yyconst flex_int32_t yy_meta[25] =
- { 0,
-- 1, 2, 3, 2, 1, 1, 1, 1, 1, 1,
-+ 1, 2, 3, 4, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1
- } ;
-
--static yyconst flex_int16_t yy_base[92] =
-+static yyconst flex_int16_t yy_base[96] =
- { 0,
-- 0, 0, 23, 41, 29, 30, 25, 36, 144, 285,
-- 36, 285, 56, 0, 285, 285, 125, 124, 123, 51,
-- 285, 47, 285, 285, 122, 119, 50, 118, 77, 95,
-- 80, 81, 54, 87, 126, 120, 61, 0, 0, 0,
-- 285, 285, 285, 88, 285, 98, 285, 285, 106, 93,
-- 101, 104, 113, 67, 131, 74, 285, 149, 285, 109,
-- 72, 116, 0, 91, 0, 102, 120, 0, 56, 52,
-- 167, 185, 203, 124, 221, 239, 127, 285, 258, 261,
-- 264, 58, 40, 266, 269, 271, 273, 275, 278, 280,
-- 282
-+ 0, 0, 23, 41, 26, 29, 31, 36, 158, 202,
-+ 155, 202, 56, 0, 202, 202, 139, 138, 137, 30,
-+ 202, 50, 202, 202, 135, 130, 48, 47, 77, 95,
-+ 55, 56, 71, 70, 137, 131, 131, 0, 0, 0,
-+ 202, 202, 202, 35, 202, 80, 202, 128, 202, 82,
-+ 76, 84, 84, 83, 98, 90, 116, 90, 202, 102,
-+ 134, 202, 101, 107, 105, 0, 111, 0, 120, 114,
-+ 0, 55, 49, 121, 123, 126, 124, 142, 144, 132,
-+ 202, 202, 163, 167, 171, 37, 175, 177, 181, 183,
-+ 187, 189, 193, 195, 197
-
- } ;
-
--static yyconst flex_int16_t yy_def[92] =
-+static yyconst flex_int16_t yy_def[96] =
- { 0,
-- 78, 1, 79, 79, 4, 4, 80, 80, 78, 78,
-- 78, 78, 78, 81, 78, 78, 13, 78, 13, 78,
-- 78, 78, 78, 78, 78, 82, 78, 83, 84, 82,
-- 85, 78, 86, 85, 87, 87, 78, 13, 13, 81,
-- 78, 78, 78, 78, 78, 78, 78, 78, 82, 82,
-- 78, 88, 89, 83, 84, 88, 78, 84, 78, 85,
-- 88, 78, 90, 86, 90, 86, 85, 90, 87, 87,
-- 89, 91, 89, 89, 91, 91, 91, 0, 78, 78,
-- 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
-- 78
-+ 82, 1, 83, 83, 4, 4, 84, 84, 82, 82,
-+ 82, 82, 82, 85, 82, 82, 13, 82, 13, 82,
-+ 82, 82, 82, 82, 82, 86, 82, 87, 88, 86,
-+ 89, 82, 90, 89, 91, 91, 82, 13, 13, 85,
-+ 82, 82, 82, 82, 82, 82, 82, 82, 82, 86,
-+ 86, 82, 92, 93, 94, 87, 88, 92, 82, 92,
-+ 88, 82, 89, 92, 82, 95, 90, 95, 90, 89,
-+ 95, 91, 91, 93, 94, 93, 93, 94, 94, 94,
-+ 82, 0, 82, 82, 82, 82, 82, 82, 82, 82,
-+ 82, 82, 82, 82, 82
-
- } ;
-
--static yyconst flex_int16_t yy_nxt[310] =
-+static yyconst flex_int16_t yy_nxt[227] =
- { 0,
-- 10, 11, 12, 11, 13, 10, 14, 13, 15, 16,
-+ 10, 11, 12, 10, 13, 10, 14, 13, 15, 16,
- 17, 18, 19, 10, 13, 20, 21, 13, 22, 13,
-- 23, 10, 24, 25, 27, 12, 27, 10, 28, 29,
-- 32, 34, 32, 34, 36, 33, 33, 37, 10, 37,
-- 53, 30, 31, 12, 31, 36, 28, 29, 46, 47,
-- 46, 51, 44, 51, 44, 65, 52, 65, 49, 30,
-- 38, 70, 37, 38, 37, 70, 38, 38, 39, 38,
-- 38, 45, 66, 38, 57, 38, 57, 38, 56, 57,
-- 56, 60, 62, 60, 62, 54, 61, 63, 67, 44,
-- 67, 44, 65, 68, 65, 58, 46, 47, 46, 46,
--
-- 47, 46, 51, 65, 51, 65, 57, 52, 45, 66,
-- 60, 50, 60, 50, 72, 61, 72, 62, 73, 62,
-- 66, 67, 63, 67, 50, 78, 68, 78, 78, 70,
-- 78, 74, 56, 57, 56, 70, 54, 50, 48, 43,
-- 42, 41, 74, 78, 78, 77, 78, 78, 78, 58,
-- 56, 57, 56, 78, 78, 78, 78, 78, 78, 78,
-- 78, 78, 78, 78, 78, 78, 78, 58, 72, 78,
-- 72, 78, 73, 78, 78, 78, 78, 78, 78, 78,
-- 78, 78, 78, 78, 78, 74, 72, 78, 72, 78,
-- 76, 78, 78, 78, 78, 78, 78, 78, 78, 78,
--
-- 78, 78, 78, 77, 72, 78, 72, 78, 73, 78,
-- 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
-- 78, 74, 72, 78, 72, 78, 76, 78, 78, 78,
-- 78, 78, 78, 78, 78, 78, 78, 78, 78, 77,
-- 72, 78, 72, 78, 76, 78, 78, 78, 78, 78,
-- 78, 78, 78, 78, 78, 78, 78, 77, 26, 26,
-- 26, 35, 35, 35, 40, 40, 55, 55, 55, 59,
-- 59, 64, 64, 69, 69, 56, 56, 56, 71, 71,
-- 65, 65, 75, 75, 9, 78, 78, 78, 78, 78,
-- 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
--
-- 78, 78, 78, 78, 78, 78, 78, 78, 78
-+ 23, 10, 24, 25, 27, 12, 10, 32, 28, 29,
-+ 34, 44, 33, 10, 10, 33, 44, 50, 10, 10,
-+ 36, 30, 31, 12, 10, 36, 28, 29, 55, 52,
-+ 45, 46, 47, 48, 53, 45, 63, 65, 73, 30,
-+ 38, 64, 66, 38, 73, 56, 38, 38, 39, 38,
-+ 38, 70, 68, 38, 68, 38, 71, 38, 58, 59,
-+ 60, 46, 47, 48, 75, 52, 59, 60, 76, 69,
-+ 53, 82, 59, 60, 51, 61, 46, 47, 48, 75,
-+
-+ 51, 77, 63, 79, 81, 60, 65, 64, 56, 59,
-+ 60, 66, 68, 51, 68, 70, 80, 58, 59, 60,
-+ 71, 68, 75, 68, 75, 82, 76, 75, 79, 69,
-+ 47, 76, 37, 82, 61, 58, 59, 60, 69, 77,
-+ 73, 80, 77, 75, 77, 75, 73, 79, 51, 79,
-+ 80, 49, 61, 43, 42, 41, 37, 82, 82, 82,
-+ 80, 82, 80, 26, 26, 26, 26, 35, 35, 35,
-+ 35, 40, 40, 82, 40, 54, 54, 57, 57, 57,
-+ 57, 62, 62, 67, 67, 82, 67, 72, 72, 58,
-+ 58, 58, 58, 74, 74, 78, 78, 68, 68, 82,
-+
-+ 68, 9, 82, 82, 82, 82, 82, 82, 82, 82,
-+ 82, 82, 82, 82, 82, 82, 82, 82, 82, 82,
-+ 82, 82, 82, 82, 82, 82
- } ;
-
--static yyconst flex_int16_t yy_chk[310] =
-+static yyconst flex_int16_t yy_chk[227] =
- { 0,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-- 1, 1, 1, 1, 3, 3, 3, 7, 3, 3,
-- 5, 6, 5, 6, 7, 5, 6, 11, 8, 11,
-- 83, 3, 4, 4, 4, 8, 4, 4, 22, 22,
-- 22, 27, 20, 27, 20, 33, 27, 33, 82, 4,
-- 13, 70, 37, 13, 37, 69, 13, 13, 13, 13,
-- 13, 20, 33, 13, 61, 13, 56, 13, 29, 29,
-- 29, 31, 32, 31, 32, 54, 31, 32, 34, 44,
-- 34, 44, 64, 34, 64, 29, 30, 30, 30, 46,
--
-- 46, 46, 51, 66, 51, 66, 52, 51, 44, 64,
-- 60, 50, 60, 30, 53, 60, 53, 62, 53, 62,
-- 66, 67, 62, 67, 49, 74, 67, 74, 77, 36,
-- 77, 53, 55, 55, 55, 35, 28, 26, 25, 19,
-- 18, 17, 74, 9, 0, 77, 0, 0, 0, 55,
-- 58, 58, 58, 0, 0, 0, 0, 0, 0, 0,
-- 0, 0, 0, 0, 0, 0, 0, 58, 71, 0,
-- 71, 0, 71, 0, 0, 0, 0, 0, 0, 0,
-- 0, 0, 0, 0, 0, 71, 72, 0, 72, 0,
-- 72, 0, 0, 0, 0, 0, 0, 0, 0, 0,
--
-- 0, 0, 0, 72, 73, 0, 73, 0, 73, 0,
-- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-- 0, 73, 75, 0, 75, 0, 75, 0, 0, 0,
-- 0, 0, 0, 0, 0, 0, 0, 0, 0, 75,
-- 76, 0, 76, 0, 76, 0, 0, 0, 0, 0,
-- 0, 0, 0, 0, 0, 0, 0, 76, 79, 79,
-- 79, 80, 80, 80, 81, 81, 84, 84, 84, 85,
-- 85, 86, 86, 87, 87, 88, 88, 88, 89, 89,
-- 90, 90, 91, 91, 78, 78, 78, 78, 78, 78,
-- 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
--
-- 78, 78, 78, 78, 78, 78, 78, 78, 78
-+ 1, 1, 1, 1, 3, 3, 3, 5, 3, 3,
-+ 6, 20, 5, 7, 7, 6, 44, 86, 8, 8,
-+ 7, 3, 4, 4, 4, 8, 4, 4, 28, 27,
-+ 20, 22, 22, 22, 27, 44, 31, 32, 73, 4,
-+ 13, 31, 32, 13, 72, 28, 13, 13, 13, 13,
-+ 13, 34, 33, 13, 33, 13, 34, 13, 29, 29,
-+ 29, 46, 46, 46, 54, 52, 53, 53, 54, 33,
-+ 52, 56, 58, 58, 51, 29, 30, 30, 30, 55,
-+
-+ 50, 54, 63, 55, 60, 60, 65, 63, 56, 64,
-+ 64, 65, 67, 30, 67, 70, 55, 57, 57, 57,
-+ 70, 69, 74, 69, 75, 77, 74, 76, 75, 67,
-+ 48, 76, 37, 80, 57, 61, 61, 61, 69, 74,
-+ 36, 75, 77, 78, 76, 79, 35, 78, 26, 79,
-+ 80, 25, 61, 19, 18, 17, 11, 9, 0, 0,
-+ 78, 0, 79, 83, 83, 83, 83, 84, 84, 84,
-+ 84, 85, 85, 0, 85, 87, 87, 88, 88, 88,
-+ 88, 89, 89, 90, 90, 0, 90, 91, 91, 92,
-+ 92, 92, 92, 93, 93, 94, 94, 95, 95, 0,
-+
-+ 95, 82, 82, 82, 82, 82, 82, 82, 82, 82,
-+ 82, 82, 82, 82, 82, 82, 82, 82, 82, 82,
-+ 82, 82, 82, 82, 82, 82
- } ;
-
--static yy_state_type yy_last_accepting_state;
--static char *yy_last_accepting_cpos;
--
--extern int yy_flex_debug;
--int yy_flex_debug = 0;
-+/* Table of booleans, true if rule could match eol. */
-+static yyconst flex_int32_t yy_rule_can_match_eol[25] =
-+ { 0,
-+0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-+ 0, 0, 1, 0, 0, };
-
- /* The intent behind this definition is that it'll catch
- * any uses of REJECT which flex missed.
-@@ -546,7 +510,6 @@
- #define yymore() yymore_used_but_not_detected
- #define YY_MORE_ADJ 0
- #define YY_RESTORE_YY_MORE_OFFSET
--char *yytext;
- #line 1 "qmake.ll"
- #line 2 "qmake.ll"
- /***************************************************************************
-@@ -569,9 +532,12 @@
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
- ***************************************************************************/
-
--#include <qmake_yacc.h>
- #include <stdlib.h>
-
-+#define DONT_INCLUDE_FLEXLEXER
-+
-+#include "qmake_lex.h"
-+
- /**
- @file qmake.ll
- QMake Lexer
-@@ -598,7 +564,7 @@
-
-
-
--#line 602 "qmake_lex.cpp"
-+#line 568 "qmake_lex.cpp"
-
- #define INITIAL 0
- #define list 1
-@@ -617,22 +583,6 @@
- #define YY_EXTRA_TYPE void *
- #endif
-
--static int yy_init_globals (void );
--
--/* Macros after this point can all be overridden by user definitions in
-- * section 1.
-- */
--
--#ifndef YY_SKIP_YYWRAP
--#ifdef __cplusplus
--extern "C" int yywrap (void );
--#else
--extern int yywrap (void );
--#endif
--#endif
--
-- static void yyunput (int c,char *buf_ptr );
--
- #ifndef yytext_ptr
- static void yy_flex_strncpy (char *,yyconst char *,int );
- #endif
-@@ -643,12 +593,6 @@
-
- #ifndef YY_NO_INPUT
-
--#ifdef __cplusplus
--static int yyinput (void );
--#else
--static int input (void );
--#endif
--
- #endif
-
- /* Amount of stuff to slurp up with each read. */
-@@ -658,10 +602,7 @@
-
- /* Copy whatever the last rule matched to the standard output. */
- #ifndef ECHO
--/* This used to be an fputs(), but since the string might contain NUL's,
-- * we now use fwrite().
-- */
--#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
-+#define ECHO LexerOutput( yytext, yyleng )
- #endif
-
- /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
-@@ -669,34 +610,9 @@
- */
- #ifndef YY_INPUT
- #define YY_INPUT(buf,result,max_size) \
-- if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
-- { \
-- int c = '*'; \
-- size_t n; \
-- for ( n = 0; n < max_size && \
-- (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
-- buf[n] = (char) c; \
-- if ( c == '\n' ) \
-- buf[n++] = (char) c; \
-- if ( c == EOF && ferror( yyin ) ) \
-- YY_FATAL_ERROR( "input in flex scanner failed" ); \
-- result = n; \
-- } \
-- else \
-- { \
-- errno=0; \
-- while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
-- { \
-- if( errno != EINTR) \
-- { \
-- YY_FATAL_ERROR( "input in flex scanner failed" ); \
-- break; \
-- } \
-- errno=0; \
-- clearerr(yyin); \
-- } \
-- }\
- \
-+ if ( (result = LexerInput( (char *) buf, max_size )) < 0 ) \
-+ YY_FATAL_ERROR( "input in flex scanner failed" );
-
- #endif
-
-@@ -715,7 +631,7 @@
-
- /* Report a fatal error. */
- #ifndef YY_FATAL_ERROR
--#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
-+#define YY_FATAL_ERROR(msg) LexerError( msg )
- #endif
-
- /* end tables serialization structures and prototypes */
-@@ -725,10 +641,7 @@
- */
- #ifndef YY_DECL
- #define YY_DECL_IS_OURS 1
--
--extern int yylex (void);
--
--#define YY_DECL int yylex (void)
-+#define YY_DECL int yyFlexLexer::yylex()
- #endif /* !YY_DECL */
-
- /* Code executed at the beginning of each rule, after yytext and yyleng
-@@ -757,9 +670,9 @@
- register char *yy_cp, *yy_bp;
- register int yy_act;
-
--#line 72 "qmake.ll"
-+#line 78 "qmake.ll"
-
--#line 763 "qmake_lex.cpp"
-+#line 676 "qmake_lex.cpp"
-
- if ( !(yy_init) )
- {
-@@ -773,18 +686,18 @@
- (yy_start) = 1; /* first start state */
-
- if ( ! yyin )
-- yyin = stdin;
-+ yyin = & std::cin;
-
- if ( ! yyout )
-- yyout = stdout;
-+ yyout = & std::cout;
-
- if ( ! YY_CURRENT_BUFFER ) {
- yyensure_buffer_stack ();
- YY_CURRENT_BUFFER_LVALUE =
-- yy_create_buffer(yyin,YY_BUF_SIZE );
-+ yy_create_buffer( yyin, YY_BUF_SIZE );
- }
-
-- yy_load_buffer_state( );
-+ yy_load_buffer_state( );
- }
-
- while ( 1 ) /* loops until end-of-file is reached */
-@@ -813,13 +726,13 @@
- while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
- {
- yy_current_state = (int) yy_def[yy_current_state];
-- if ( yy_current_state >= 79 )
-+ if ( yy_current_state >= 83 )
- yy_c = yy_meta[(unsigned int) yy_c];
- }
- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- ++yy_cp;
- }
-- while ( yy_base[yy_current_state] != 285 );
-+ while ( yy_base[yy_current_state] != 202 );
-
- yy_find_action:
- yy_act = yy_accept[yy_current_state];
-@@ -832,6 +745,16 @@
-
- YY_DO_BEFORE_ACTION;
-
-+ if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
-+ {
-+ int yyl;
-+ for ( yyl = 0; yyl < yyleng; ++yyl )
-+ if ( yytext[yyl] == '\n' )
-+
-+ yylineno++;
-+;
-+ }
-+
- do_action: /* This label is used only to access EOF actions. */
-
- switch ( yy_act )
-@@ -845,147 +768,205 @@
-
- case 1:
- YY_RULE_SETUP
--#line 73 "qmake.ll"
-+#line 79 "qmake.ll"
- {}
- YY_BREAK
- case 2:
- YY_RULE_SETUP
--#line 74 "qmake.ll"
--{ yylval.value = yytext; return LIST_WS; }
-+#line 81 "qmake.ll"
-+{
-+ mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() );
-+ return Parser::token::token::LIST_WS;
-+}
- YY_BREAK
- case 3:
- YY_RULE_SETUP
--#line 75 "qmake.ll"
--{
-- yylval.value = yytext;
-- unput(char(yylval.value.at(yylval.value.length()-1).latin1()));
-- yylval.value = yylval.value.mid(0, yylval.value.length()-1);
-- return INDENT;
-+#line 86 "qmake.ll"
-+{
-+ mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() );
-+ unput(char(mylval->value.at(mylval->value.length()-1).latin1()));
-+ mylval->value = mylval->value.mid(0, mylval->value.length()-1);
-+ return Parser::token::token::INDENT;
- }
- YY_BREAK
- case 4:
- /* rule 4 can match eol */
- YY_RULE_SETUP
--#line 82 "qmake.ll"
--{ BEGIN(list); return CONT; }
-+#line 93 "qmake.ll"
-+{
-+ BEGIN(list);
-+ return Parser::token::token::CONT;
-+}
- YY_BREAK
- case 5:
- YY_RULE_SETUP
--#line 83 "qmake.ll"
--{ yylval.value = yytext; return (ID_SIMPLE); }
-+#line 97 "qmake.ll"
-+{
-+ mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() );
-+ return (Parser::token::token::ID_SIMPLE);
-+}
- YY_BREAK
- case 6:
- YY_RULE_SETUP
--#line 85 "qmake.ll"
-+#line 102 "qmake.ll"
- {
-- yylval.value = yytext;
-+ mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() );
- BEGIN(list);
-- return (LIST_COMMENT_WITHOUT_NEWLINE);
-+ return (Parser::token::token::LIST_COMMENT_WITHOUT_NEWLINE);
- }
- YY_BREAK
- case 7:
- /* rule 7 can match eol */
- YY_RULE_SETUP
--#line 91 "qmake.ll"
-+#line 108 "qmake.ll"
- {
-- yylval.value = yytext;
-+ mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() );
- BEGIN(list);
-- return (LIST_COMMENT);
-+ return (Parser::token::token::LIST_COMMENT);
- }
- YY_BREAK
- case 8:
- YY_RULE_SETUP
--#line 97 "qmake.ll"
-+#line 114 "qmake.ll"
- {
-- yylval.value = yytext;
-- yylval.value = yylval.value.mid(0, yylval.value.length()-1);
-+ mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() );
-+ mylval->value = mylval->value.mid(0, mylval->value.length()-1);
- unput(')');
- BEGIN(INITIAL);
-- return (ID_ARGS);
-+ return (Parser::token::token::ID_ARGS);
- }
- YY_BREAK
- case 9:
- YY_RULE_SETUP
--#line 105 "qmake.ll"
--{ BEGIN(list_with_comment); yylval.value = yytext; return VARIABLE_VALUE; }
-+#line 122 "qmake.ll"
-+{
-+ BEGIN(list_with_comment);
-+ mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() );
-+ return Parser::token::token::VARIABLE_VALUE;
-+}
- YY_BREAK
- case 10:
- YY_RULE_SETUP
--#line 106 "qmake.ll"
--{ BEGIN(list_with_comment); yylval.value = yytext; return QUOTED_VARIABLE_VALUE; }
-+#line 128 "qmake.ll"
-+{
-+ BEGIN(list_with_comment);
-+ mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() );
-+ return Parser::token::token::QUOTED_VARIABLE_VALUE;
-+}
- YY_BREAK
- case 11:
- YY_RULE_SETUP
--#line 108 "qmake.ll"
--{ BEGIN(list); yylval.value = yytext; return EQ; }
-+#line 134 "qmake.ll"
-+{
-+BEGIN(list);
-+mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() );
-+return Parser::token::token::EQ;
-+}
- YY_BREAK
- case 12:
- YY_RULE_SETUP
--#line 109 "qmake.ll"
--{ BEGIN(list); yylval.value = yytext; return PLUSEQ; }
-+#line 140 "qmake.ll"
-+{
-+ BEGIN(list);
-+ mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() );
-+ return Parser::token::token::PLUSEQ;
-+}
- YY_BREAK
- case 13:
- YY_RULE_SETUP
--#line 110 "qmake.ll"
--{ BEGIN(list); yylval.value = yytext; return MINUSQE; }
-+#line 146 "qmake.ll"
-+{
-+ BEGIN(list);
-+ mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() );
-+ return Parser::token::token::MINUSEQ;
-+}
- YY_BREAK
- case 14:
- YY_RULE_SETUP
--#line 111 "qmake.ll"
--{ BEGIN(list); yylval.value = yytext; return STAREQ; }
-+#line 152 "qmake.ll"
-+{
-+ BEGIN(list);
-+ mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() );
-+ return Parser::token::token::STAREQ;
-+}
- YY_BREAK
- case 15:
- YY_RULE_SETUP
--#line 112 "qmake.ll"
--{ BEGIN(list); yylval.value = yytext; return TILDEEQ; }
-+#line 158 "qmake.ll"
-+{
-+ BEGIN(list);
-+ mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() );
-+ return Parser::token::token::TILDEEQ;
-+}
- YY_BREAK
- case 16:
- YY_RULE_SETUP
--#line 113 "qmake.ll"
--{ return LCURLY; }
-+#line 164 "qmake.ll"
-+{
-+ return Parser::token::token::LCURLY;
-+}
- YY_BREAK
- case 17:
- YY_RULE_SETUP
--#line 114 "qmake.ll"
--{ return LCURLY; }
-+#line 168 "qmake.ll"
-+{
-+ return Parser::token::token::LCURLY;
-+}
- YY_BREAK
- case 18:
- YY_RULE_SETUP
--#line 115 "qmake.ll"
--{ return RCURLY; }
-+#line 172 "qmake.ll"
-+{
-+ return Parser::token::token::RCURLY;
-+}
- YY_BREAK
- case 19:
- YY_RULE_SETUP
--#line 116 "qmake.ll"
--{ BEGIN(funcargs); return LBRACE; }
-+#line 176 "qmake.ll"
-+{
-+ BEGIN(funcargs);
-+ return Parser::token::token::LBRACE;
-+}
- YY_BREAK
- case 20:
- YY_RULE_SETUP
--#line 117 "qmake.ll"
--{ BEGIN(INITIAL); return RBRACE; }
-+#line 181 "qmake.ll"
-+{
-+ BEGIN(INITIAL);
-+ return Parser::token::token::RBRACE;
-+}
- YY_BREAK
- case 21:
- YY_RULE_SETUP
--#line 118 "qmake.ll"
--{ yylval.value = yytext; return COLON; }
-+#line 186 "qmake.ll"
-+{
-+ mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() );
-+ return Parser::token::token::COLON;
-+}
- YY_BREAK
- case 22:
- /* rule 22 can match eol */
- YY_RULE_SETUP
--#line 119 "qmake.ll"
--{ BEGIN(INITIAL); return NEWLINE; }
-+#line 191 "qmake.ll"
-+{
-+ BEGIN(INITIAL);
-+ return Parser::token::token::NEWLINE;
-+}
- YY_BREAK
- case 23:
- YY_RULE_SETUP
--#line 121 "qmake.ll"
--{ yylval.value = yytext; return (COMMENT); }
-+#line 196 "qmake.ll"
-+{
-+ mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() );
-+ return (Parser::token::token::COMMENT);
-+}
- YY_BREAK
- case 24:
- YY_RULE_SETUP
--#line 123 "qmake.ll"
-+#line 201 "qmake.ll"
- ECHO;
- YY_BREAK
--#line 989 "qmake_lex.cpp"
-+#line 970 "qmake_lex.cpp"
- case YY_STATE_EOF(INITIAL):
- case YY_STATE_EOF(list):
- case YY_STATE_EOF(list_with_comment):
-@@ -1066,7 +1047,7 @@
- {
- (yy_did_buffer_switch_on_eof) = 0;
-
-- if ( yywrap( ) )
-+ if ( yywrap( ) )
- {
- /* Note: because we've taken care in
- * yy_get_next_buffer() to have set up
-@@ -1121,6 +1102,81 @@
- } /* end of scanning one token */
- } /* end of yylex */
-
-+yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout )
-+{
-+ yyin = arg_yyin;
-+ yyout = arg_yyout;
-+ yy_c_buf_p = 0;
-+ yy_init = 0;
-+ yy_start = 0;
-+ yy_flex_debug = 0;
-+ yylineno = 1; // this will only get updated if %option yylineno
-+
-+ yy_did_buffer_switch_on_eof = 0;
-+
-+ yy_looking_for_trail_begin = 0;
-+ yy_more_flag = 0;
-+ yy_more_len = 0;
-+ yy_more_offset = yy_prev_more_offset = 0;
-+
-+ yy_start_stack_ptr = yy_start_stack_depth = 0;
-+ yy_start_stack = NULL;
-+
-+ (yy_buffer_stack) = 0;
-+ (yy_buffer_stack_top) = 0;
-+ (yy_buffer_stack_max) = 0;
-+
-+ yy_state_buf = 0;
-+
-+}
-+
-+void yyFlexLexer::switch_streams( std::istream* new_in, std::ostream* new_out )
-+{
-+ if ( new_in )
-+ {
-+ yy_delete_buffer( YY_CURRENT_BUFFER );
-+ yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) );
-+ }
-+
-+ if ( new_out )
-+ yyout = new_out;
-+}
-+
-+#ifdef YY_INTERACTIVE
-+int yyFlexLexer::LexerInput( char* buf, int /* max_size */ )
-+#else
-+int yyFlexLexer::LexerInput( char* buf, int max_size )
-+#endif
-+{
-+ if ( yyin->eof() || yyin->fail() )
-+ return 0;
-+
-+#ifdef YY_INTERACTIVE
-+ yyin->get( buf[0] );
-+
-+ if ( yyin->eof() )
-+ return 0;
-+
-+ if ( yyin->bad() )
-+ return -1;
-+
-+ return 1;
-+
-+#else
-+ (void) yyin->read( buf, max_size );
-+
-+ if ( yyin->bad() )
-+ return -1;
-+ else
-+ return yyin->gcount();
-+#endif
-+}
-+
-+void yyFlexLexer::LexerOutput( const char* buf, int size )
-+{
-+ (void) yyout->write( buf, size );
-+}
-+
- /* yy_get_next_buffer - try to read in a new buffer
- *
- * Returns a code representing an action:
-@@ -1128,7 +1184,7 @@
- * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
- * EOB_ACT_END_OF_FILE - end of file
- */
--static int yy_get_next_buffer (void)
-+int yyFlexLexer::yy_get_next_buffer()
- {
- register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
- register char *source = (yytext_ptr);
-@@ -1229,7 +1285,7 @@
- if ( number_to_move == YY_MORE_ADJ )
- {
- ret_val = EOB_ACT_END_OF_FILE;
-- yyrestart(yyin );
-+ yyrestart( yyin );
- }
-
- else
-@@ -1254,7 +1310,7 @@
-
- /* yy_get_previous_state - get the state just before the EOB char was reached */
-
-- static yy_state_type yy_get_previous_state (void)
-+ yy_state_type yyFlexLexer::yy_get_previous_state()
- {
- register yy_state_type yy_current_state;
- register char *yy_cp;
-@@ -1273,7 +1329,7 @@
- while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
- {
- yy_current_state = (int) yy_def[yy_current_state];
-- if ( yy_current_state >= 79 )
-+ if ( yy_current_state >= 83 )
- yy_c = yy_meta[(unsigned int) yy_c];
- }
- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-@@ -1287,7 +1343,7 @@
- * synopsis
- * next_state = yy_try_NUL_trans( current_state );
- */
-- static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
-+ yy_state_type yyFlexLexer::yy_try_NUL_trans( yy_state_type yy_current_state )
- {
- register int yy_is_jam;
- register char *yy_cp = (yy_c_buf_p);
-@@ -1301,16 +1357,16 @@
- while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
- {
- yy_current_state = (int) yy_def[yy_current_state];
-- if ( yy_current_state >= 79 )
-+ if ( yy_current_state >= 83 )
- yy_c = yy_meta[(unsigned int) yy_c];
- }
- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-- yy_is_jam = (yy_current_state == 78);
-+ yy_is_jam = (yy_current_state == 82);
-
- return yy_is_jam ? 0 : yy_current_state;
- }
-
-- static void yyunput (int c, register char * yy_bp )
-+ void yyFlexLexer::yyunput( int c, register char* yy_bp)
- {
- register char *yy_cp;
-
-@@ -1342,18 +1398,16 @@
-
- *--yy_cp = (char) c;
-
-+ if ( c == '\n' ){
-+ --yylineno;
-+ }
-+
- (yytext_ptr) = yy_bp;
- (yy_hold_char) = *yy_cp;
- (yy_c_buf_p) = yy_cp;
- }
-
--#ifndef YY_NO_INPUT
--#ifdef __cplusplus
-- static int yyinput (void)
--#else
-- static int input (void)
--#endif
--
-+ int yyFlexLexer::yyinput()
- {
- int c;
-
-@@ -1388,13 +1442,13 @@
- */
-
- /* Reset buffer status. */
-- yyrestart(yyin );
-+ yyrestart( yyin );
-
- /*FALLTHROUGH*/
-
- case EOB_ACT_END_OF_FILE:
- {
-- if ( yywrap( ) )
-+ if ( yywrap( ) )
- return EOF;
-
- if ( ! (yy_did_buffer_switch_on_eof) )
-@@ -1418,34 +1472,37 @@
- (yy_hold_char) = *++(yy_c_buf_p);
-
- YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
-+ if ( YY_CURRENT_BUFFER_LVALUE->yy_at_bol )
-+
-+ yylineno++;
-+;
-
- return c;
- }
--#endif /* ifndef YY_NO_INPUT */
-
- /** Immediately switch to a different input stream.
- * @param input_file A readable stream.
- *
- * @note This function does not reset the start condition to @c INITIAL .
- */
-- void yyrestart (FILE * input_file )
-+ void yyFlexLexer::yyrestart( std::istream* input_file )
- {
-
- if ( ! YY_CURRENT_BUFFER ){
- yyensure_buffer_stack ();
- YY_CURRENT_BUFFER_LVALUE =
-- yy_create_buffer(yyin,YY_BUF_SIZE );
-+ yy_create_buffer( yyin, YY_BUF_SIZE );
- }
-
-- yy_init_buffer(YY_CURRENT_BUFFER,input_file );
-- yy_load_buffer_state( );
-+ yy_init_buffer( YY_CURRENT_BUFFER, input_file );
-+ yy_load_buffer_state( );
- }
-
- /** Switch to a different input buffer.
- * @param new_buffer The new input buffer.
- *
- */
-- void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer )
-+ void yyFlexLexer::yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
- {
-
- /* TODO. We should be able to replace this entire function body
-@@ -1466,7 +1523,7 @@
- }
-
- YY_CURRENT_BUFFER_LVALUE = new_buffer;
-- yy_load_buffer_state( );
-+ yy_load_buffer_state( );
-
- /* We don't actually know whether we did this switch during
- * EOF (yywrap()) processing, but the only time this flag
-@@ -1476,7 +1533,7 @@
- (yy_did_buffer_switch_on_eof) = 1;
- }
-
--static void yy_load_buffer_state (void)
-+ void yyFlexLexer::yy_load_buffer_state()
- {
- (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
- (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
-@@ -1490,7 +1547,7 @@
- *
- * @return the allocated buffer state.
- */
-- YY_BUFFER_STATE yy_create_buffer (FILE * file, int size )
-+ YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size )
- {
- YY_BUFFER_STATE b;
-
-@@ -1509,7 +1566,7 @@
-
- b->yy_is_our_buffer = 1;
-
-- yy_init_buffer(b,file );
-+ yy_init_buffer( b, file );
-
- return b;
- }
-@@ -1518,7 +1575,7 @@
- * @param b a buffer created with yy_create_buffer()
- *
- */
-- void yy_delete_buffer (YY_BUFFER_STATE b )
-+ void yyFlexLexer::yy_delete_buffer( YY_BUFFER_STATE b )
- {
-
- if ( ! b )
-@@ -1533,20 +1590,18 @@
- yyfree((void *) b );
- }
-
--#ifndef __cplusplus
--extern int isatty (int );
--#endif /* __cplusplus */
--
-+extern "C" int isatty (int );
-+
- /* Initializes or reinitializes a buffer.
- * This function is sometimes called more than once on the same buffer,
- * such as during a yyrestart() or at EOF.
- */
-- static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
-+ void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream* file )
-
- {
- int oerrno = errno;
-
-- yy_flush_buffer(b );
-+ yy_flush_buffer( b );
-
- b->yy_input_file = file;
- b->yy_fill_buffer = 1;
-@@ -1560,8 +1615,7 @@
- b->yy_bs_column = 0;
- }
-
-- b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
--
-+ b->yy_is_interactive = 0;
- errno = oerrno;
- }
-
-@@ -1569,7 +1623,7 @@
- * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
- *
- */
-- void yy_flush_buffer (YY_BUFFER_STATE b )
-+ void yyFlexLexer::yy_flush_buffer( YY_BUFFER_STATE b )
- {
- if ( ! b )
- return;
-@@ -1589,7 +1643,7 @@
- b->yy_buffer_status = YY_BUFFER_NEW;
-
- if ( b == YY_CURRENT_BUFFER )
-- yy_load_buffer_state( );
-+ yy_load_buffer_state( );
- }
-
- /** Pushes the new state onto the stack. The new state becomes
-@@ -1598,7 +1652,7 @@
- * @param new_buffer The new state.
- *
- */
--void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
-+void yyFlexLexer::yypush_buffer_state (YY_BUFFER_STATE new_buffer)
- {
- if (new_buffer == NULL)
- return;
-@@ -1620,7 +1674,7 @@
- YY_CURRENT_BUFFER_LVALUE = new_buffer;
-
- /* copied from yy_switch_to_buffer. */
-- yy_load_buffer_state( );
-+ yy_load_buffer_state( );
- (yy_did_buffer_switch_on_eof) = 1;
- }
-
-@@ -1628,7 +1682,7 @@
- * The next element becomes the new top.
- *
- */
--void yypop_buffer_state (void)
-+void yyFlexLexer::yypop_buffer_state (void)
- {
- if (!YY_CURRENT_BUFFER)
- return;
-@@ -1639,7 +1693,7 @@
- --(yy_buffer_stack_top);
-
- if (YY_CURRENT_BUFFER) {
-- yy_load_buffer_state( );
-+ yy_load_buffer_state( );
- (yy_did_buffer_switch_on_eof) = 1;
- }
- }
-@@ -1647,7 +1701,7 @@
- /* Allocates the stack if it does not exist.
- * Guarantees space for at least one push.
- */
--static void yyensure_buffer_stack (void)
-+void yyFlexLexer::yyensure_buffer_stack(void)
- {
- int num_to_alloc;
-
-@@ -1686,99 +1740,51 @@
- }
- }
-
--/** Setup the input buffer state to scan directly from a user-specified character buffer.
-- * @param base the character buffer
-- * @param size the size in bytes of the character buffer
-- *
-- * @return the newly allocated buffer state object.
-- */
--YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size )
-+ void yyFlexLexer::yy_push_state( int new_state )
- {
-- YY_BUFFER_STATE b;
--
-- if ( size < 2 ||
-- base[size-2] != YY_END_OF_BUFFER_CHAR ||
-- base[size-1] != YY_END_OF_BUFFER_CHAR )
-- /* They forgot to leave room for the EOB's. */
-- return 0;
-+ if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
-+ {
-+ yy_size_t new_size;
-
-- b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) );
-- if ( ! b )
-- YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
-+ (yy_start_stack_depth) += YY_START_STACK_INCR;
-+ new_size = (yy_start_stack_depth) * sizeof( int );
-
-- b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
-- b->yy_buf_pos = b->yy_ch_buf = base;
-- b->yy_is_our_buffer = 0;
-- b->yy_input_file = 0;
-- b->yy_n_chars = b->yy_buf_size;
-- b->yy_is_interactive = 0;
-- b->yy_at_bol = 1;
-- b->yy_fill_buffer = 0;
-- b->yy_buffer_status = YY_BUFFER_NEW;
-+ if ( ! (yy_start_stack) )
-+ (yy_start_stack) = (int *) yyalloc(new_size );
-
-- yy_switch_to_buffer(b );
-+ else
-+ (yy_start_stack) = (int *) yyrealloc((void *) (yy_start_stack),new_size );
-
-- return b;
--}
-+ if ( ! (yy_start_stack) )
-+ YY_FATAL_ERROR(
-+ "out of memory expanding start-condition stack" );
-+ }
-
--/** Setup the input buffer state to scan a string. The next call to yylex() will
-- * scan from a @e copy of @a str.
-- * @param yystr a NUL-terminated string to scan
-- *
-- * @return the newly allocated buffer state object.
-- * @note If you want to scan bytes that may contain NUL values, then use
-- * yy_scan_bytes() instead.
-- */
--YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
--{
--
-- return yy_scan_bytes(yystr,strlen(yystr) );
-+ (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
-+
-+ BEGIN(new_state);
- }
-
--/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
-- * scan from a @e copy of @a bytes.
-- * @param bytes the byte buffer to scan
-- * @param len the number of bytes in the buffer pointed to by @a bytes.
-- *
-- * @return the newly allocated buffer state object.
-- */
--YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len )
-+ void yyFlexLexer::yy_pop_state()
- {
-- YY_BUFFER_STATE b;
-- char *buf;
-- yy_size_t n;
-- int i;
--
-- /* Get memory for full buffer, including space for trailing EOB's. */
-- n = _yybytes_len + 2;
-- buf = (char *) yyalloc(n );
-- if ( ! buf )
-- YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
--
-- for ( i = 0; i < _yybytes_len; ++i )
-- buf[i] = yybytes[i];
-+ if ( --(yy_start_stack_ptr) < 0 )
-+ YY_FATAL_ERROR( "start-condition stack underflow" );
-
-- buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
--
-- b = yy_scan_buffer(buf,n );
-- if ( ! b )
-- YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
--
-- /* It's okay to grow etc. this buffer, and we should throw it
-- * away when we're done.
-- */
-- b->yy_is_our_buffer = 1;
-+ BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
-+}
-
-- return b;
-+ int yyFlexLexer::yy_top_state()
-+{
-+ return (yy_start_stack)[(yy_start_stack_ptr) - 1];
- }
-
- #ifndef YY_EXIT_FAILURE
- #define YY_EXIT_FAILURE 2
- #endif
-
--static void yy_fatal_error (yyconst char* msg )
-+void yyFlexLexer::LexerError( yyconst char msg[] )
- {
-- (void) fprintf( stderr, "%s\n", msg );
-+ std::cerr << msg << std::endl;
- exit( YY_EXIT_FAILURE );
- }
-
-@@ -1801,119 +1807,12 @@
-
- /* Accessor methods (get/set functions) to struct members. */
-
--/** Get the current line number.
-- *
-- */
--int yyget_lineno (void)
--{
--
-- return yylineno;
--}
--
--/** Get the input stream.
-- *
-- */
--FILE *yyget_in (void)
--{
-- return yyin;
--}
--
--/** Get the output stream.
-- *
-- */
--FILE *yyget_out (void)
--{
-- return yyout;
--}
--
--/** Get the length of the current token.
-- *
-- */
--int yyget_leng (void)
--{
-- return yyleng;
--}
--
--/** Get the current token.
-- *
-- */
--
--char *yyget_text (void)
--{
-- return yytext;
--}
--
--/** Set the current line number.
-- * @param line_number
-- *
-- */
--void yyset_lineno (int line_number )
--{
--
-- yylineno = line_number;
--}
--
--/** Set the input stream. This does not discard the current
-- * input buffer.
-- * @param in_str A readable stream.
-- *
-- * @see yy_switch_to_buffer
-- */
--void yyset_in (FILE * in_str )
--{
-- yyin = in_str ;
--}
--
--void yyset_out (FILE * out_str )
--{
-- yyout = out_str ;
--}
--
--int yyget_debug (void)
--{
-- return yy_flex_debug;
--}
--
--void yyset_debug (int bdebug )
--{
-- yy_flex_debug = bdebug ;
--}
--
--static int yy_init_globals (void)
--{
-- /* Initialization is the same as for the non-reentrant scanner.
-- * This function is called from yylex_destroy(), so don't allocate here.
-- */
--
-- (yy_buffer_stack) = 0;
-- (yy_buffer_stack_top) = 0;
-- (yy_buffer_stack_max) = 0;
-- (yy_c_buf_p) = (char *) 0;
-- (yy_init) = 0;
-- (yy_start) = 0;
--
--/* Defined in main.c */
--#ifdef YY_STDINIT
-- yyin = stdin;
-- yyout = stdout;
--#else
-- yyin = (FILE *) 0;
-- yyout = (FILE *) 0;
--#endif
--
-- /* For future reference: Set errno on error, since we are called by
-- * yylex_init()
-- */
-- return 0;
--}
--
--/* yylex_destroy is for both reentrant and non-reentrant scanners. */
--int yylex_destroy (void)
-+yyFlexLexer::~yyFlexLexer()
- {
-
- /* Pop the buffer stack, destroying each element. */
- while(YY_CURRENT_BUFFER){
-- yy_delete_buffer(YY_CURRENT_BUFFER );
-+ yy_delete_buffer( YY_CURRENT_BUFFER );
- YY_CURRENT_BUFFER_LVALUE = NULL;
- yypop_buffer_state();
- }
-@@ -1922,11 +1821,9 @@
- yyfree((yy_buffer_stack) );
- (yy_buffer_stack) = NULL;
-
-- /* Reset the globals. This is important in a non-reentrant scanner so the next time
-- * yylex() is called, initialization will occur. */
-- yy_init_globals( );
-+ delete [] (yy_state_buf);
-+ yyfree((yy_start_stack) );
-
-- return 0;
- }
-
- /*
-@@ -1977,7 +1874,26 @@
-
- #define YYTABLES_NAME "yytables"
-
--#line 123 "qmake.ll"
-+#line 201 "qmake.ll"
-
-
-+namespace QMake
-+{
-+ Lexer::Lexer( std::istream* argin, std::ostream* argout )
-+ : yyFlexLexer(argin, argout), mylval(0)
-+ {
-+ }
-+
-+ int Lexer::yylex( QMake::Parser::semantic_type* yylval )
-+ {
-+ mylval = yylval;
-+ return yylex();
-+ }
-+}
-+
-+int QMakelex( QMake::Parser::semantic_type* yylval, QMake::Lexer* lexer)
-+{
-+ return lexer->yylex( yylval );
-+}
-+
-
-diff -u --exclude=.svn -Nur kdev_3.4.0.org/buildtools/lib/parsers/qmake/qmake_lex.h kdev_3.4.0/buildtools/lib/parsers/qmake/qmake_lex.h
---- buildtools/lib/parsers/qmake/qmake_lex.h 1970-01-01 01:00:00.000000000 +0100
-+++ buildtools/lib/parsers/qmake/qmake_lex.h 2007-02-07 20:35:12.000000000 +0100
-@@ -0,0 +1,45 @@
-+/* KDevelop QMake Support
-+ *
-+ * Copyright 2007 Andreas Pakulat <apaku@gmx.de>
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version 2
-+ * of the License, or (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-+ * 02110-1301, USA.
-+ */
-+#ifndef QMAKE_LEX_H
-+#define QMAKE_LEX_H
-+
-+#include "qmake_yacc.hpp"
-+#include <iostream>
-+
-+#ifndef DONT_INCLUDE_FLEXLEXER
-+#include "FlexLexer.h"
-+#endif
-+
-+namespace QMake
-+{
-+ class Lexer : public yyFlexLexer
-+ {
-+ public:
-+ Lexer( std::istream* argin = 0, std::ostream* argout = 0 );
-+ int yylex( QMake::Parser::semantic_type* yylval );
-+ int yylex();
-+ private:
-+ QMake::Parser::semantic_type* mylval;
-+ };
-+}
-+
-+#endif
-+
-+// kate: space-indent on; indent-width 4; tab-width: 4; replace-tabs on; auto-insert-doxygen on
-diff -u --exclude=.svn -Nur kdev_3.4.0.org/buildtools/lib/parsers/qmake/qmake.ll kdev_3.4.0/buildtools/lib/parsers/qmake/qmake.ll
---- buildtools/lib/parsers/qmake/qmake.ll 2007-02-07 21:15:37.000000000 +0100
-+++ buildtools/lib/parsers/qmake/qmake.ll 2007-02-07 20:35:16.000000000 +0100
-@@ -19,9 +19,12 @@
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
- ***************************************************************************/
-
--#include <qmake_yacc.h>
- #include <stdlib.h>
-
-+#define DONT_INCLUDE_FLEXLEXER
-+
-+#include "qmake_lex.h"
-+
- /**
- @file qmake.ll
- QMake Lexer
-@@ -48,6 +51,9 @@
- %}
-
- %option noyywrap
-+%option yylineno
-+%option c++
-+%option yyclass="QMake::Lexer"
-
- %x list
- %x list_with_comment
-@@ -55,69 +61,160 @@
-
- delim [ \t]
- ws {delim}+
--begin_ws ^{delim}+[^\n\t ]
-+begin_ws ^{delim}+[^\r\n\t ]
- quote "\""
--var_value [^\n\t ]*[^\n\t \\]
-+var_value [^\r\n\t ]*[^\r\n\t \\]
- quoted_var_value {quote}({var_value}|[\t ])({var_value}|[\t ])*{quote}
- letter [A-Za-z]
- digit [0-9]
- id_simple ({digit}|{letter}|\!|-|_|\*|\$)({letter}|{digit}|\||\!|-|_|\*|\$|\.|\+|\-)*
--id_args [^\n]*\)
-+id_args [^\r\n]*\)
- number {digit}+
- comment #.*
--comment_cont {ws}*#.*\n
-+comment_cont {ws}*#.*(\n|\r|\r\n)
- comment_cont_nn {ws}*#.*
--cont \\{ws}*\n
-+cont \\{ws}*(\n|\r|\r\n)
-
- %%
--<INITIAL>{ws} {}
--<list,list_with_comment>{ws} { yylval.value = yytext; return LIST_WS; }
--<list,list_with_comment>{begin_ws} {
-- yylval.value = yytext;
-- unput(char(yylval.value.at(yylval.value.length()-1).latin1()));
-- yylval.value = yylval.value.mid(0, yylval.value.length()-1);
-- return INDENT;
-+<INITIAL>{ws} {}
-+
-+<list,list_with_comment>{ws} {
-+ mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() );
-+ return Parser::token::token::LIST_WS;
- }
-
--<list,list_with_comment,INITIAL>{cont} { BEGIN(list); return CONT; }
--{id_simple} { yylval.value = yytext; return (ID_SIMPLE); }
-+<list,list_with_comment>{begin_ws} {
-+ mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() );
-+ unput(char(mylval->value.at(mylval->value.length()-1).latin1()));
-+ mylval->value = mylval->value.mid(0, mylval->value.length()-1);
-+ return Parser::token::token::INDENT;
-+}
-+
-+<list,list_with_comment,INITIAL>{cont} {
-+ BEGIN(list);
-+ return Parser::token::token::CONT;
-+}
-+{id_simple} {
-+ mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() );
-+ return (Parser::token::token::ID_SIMPLE);
-+}
-
- <list_with_comment>{comment_cont_nn} {
-- yylval.value = yytext;
-+ mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() );
- BEGIN(list);
-- return (LIST_COMMENT_WITHOUT_NEWLINE);
-+ return (Parser::token::token::LIST_COMMENT_WITHOUT_NEWLINE);
- }
-
- <list>{comment_cont} {
-- yylval.value = yytext;
-+ mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() );
- BEGIN(list);
-- return (LIST_COMMENT);
-+ return (Parser::token::token::LIST_COMMENT);
- }
-
- <funcargs>{id_args} {
-- yylval.value = yytext;
-- yylval.value = yylval.value.mid(0, yylval.value.length()-1);
-+ mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() );
-+ mylval->value = mylval->value.mid(0, mylval->value.length()-1);
- unput(')');
- BEGIN(INITIAL);
-- return (ID_ARGS);
-+ return (Parser::token::token::ID_ARGS);
- }
-
--<list,list_with_comment>{var_value} { BEGIN(list_with_comment); yylval.value = yytext; return VARIABLE_VALUE; }
--<list,list_with_comment>{quoted_var_value} { BEGIN(list_with_comment); yylval.value = yytext; return QUOTED_VARIABLE_VALUE; }
-+<list,list_with_comment>{var_value} {
-+ BEGIN(list_with_comment);
-+ mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() );
-+ return Parser::token::token::VARIABLE_VALUE;
-+}
-+
-+<list,list_with_comment>{quoted_var_value} {
-+ BEGIN(list_with_comment);
-+ mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() );
-+ return Parser::token::token::QUOTED_VARIABLE_VALUE;
-+}
-+
-+"=" {
-+BEGIN(list);
-+mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() );
-+return Parser::token::token::EQ;
-+}
-+
-+"+=" {
-+ BEGIN(list);
-+ mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() );
-+ return Parser::token::token::PLUSEQ;
-+}
-+
-+"-=" {
-+ BEGIN(list);
-+ mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() );
-+ return Parser::token::token::MINUSEQ;
-+}
-+
-+"*=" {
-+ BEGIN(list);
-+ mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() );
-+ return Parser::token::token::STAREQ;
-+}
-+
-+"~=" {
-+ BEGIN(list);
-+ mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() );
-+ return Parser::token::token::TILDEEQ;
-+}
-+
-+"{" {
-+ return Parser::token::token::LCURLY;
-+}
-+
-+":"{delim}*"{" {
-+ return Parser::token::token::LCURLY;
-+}
-+
-+"}" {
-+ return Parser::token::token::RCURLY;
-+}
-+
-+"(" {
-+ BEGIN(funcargs);
-+ return Parser::token::token::LBRACE;
-+}
-+
-+<funcargs,INITIAL>")" {
-+ BEGIN(INITIAL);
-+ return Parser::token::token::RBRACE;
-+}
-+
-+":" {
-+ mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() );
-+ return Parser::token::token::COLON;
-+}
-
--"=" { BEGIN(list); yylval.value = yytext; return EQ; }
--"+=" { BEGIN(list); yylval.value = yytext; return PLUSEQ; }
--"-=" { BEGIN(list); yylval.value = yytext; return MINUSQE; }
--"*=" { BEGIN(list); yylval.value = yytext; return STAREQ; }
--"~=" { BEGIN(list); yylval.value = yytext; return TILDEEQ; }
--"{" { return LCURLY; }
--":"{delim}*"{" { return LCURLY; }
--"}" { return RCURLY; }
--"(" { BEGIN(funcargs); return LBRACE; }
--<funcargs,INITIAL>")" { BEGIN(INITIAL); return RBRACE; }
--":" { yylval.value = yytext; return COLON; }
--<list,list_with_comment,INITIAL>"\n" { BEGIN(INITIAL); return NEWLINE; }
-+<list,list_with_comment,INITIAL>"\n" {
-+ BEGIN(INITIAL);
-+ return Parser::token::token::NEWLINE;
-+}
-
--{comment} { yylval.value = yytext; return (COMMENT); }
-+{comment} {
-+ mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() );
-+ return (Parser::token::token::COMMENT);
-+}
-
- %%
-+namespace QMake
-+{
-+ Lexer::Lexer( std::istream* argin, std::ostream* argout )
-+ : yyFlexLexer(argin, argout), mylval(0)
-+ {
-+ }
-+
-+ int Lexer::yylex( QMake::Parser::semantic_type* yylval )
-+ {
-+ mylval = yylval;
-+ return yylex();
-+ }
-+}
-+
-+int QMakelex( QMake::Parser::semantic_type* yylval, QMake::Lexer* lexer)
-+{
-+ return lexer->yylex( yylval );
-+}
-+
-diff -u --exclude=.svn -Nur kdev_3.4.0.org/buildtools/lib/parsers/qmake/qmake_yacc.cpp kdev_3.4.0/buildtools/lib/parsers/qmake/qmake_yacc.cpp
---- buildtools/lib/parsers/qmake/qmake_yacc.cpp 2007-02-07 21:15:37.000000000 +0100
-+++ buildtools/lib/parsers/qmake/qmake_yacc.cpp 2007-02-07 20:35:19.000000000 +0100
-@@ -1,9 +1,8 @@
- /* A Bison parser, made by GNU Bison 2.3. */
-
--/* Skeleton implementation for Bison's Yacc-like parsers in C
-+/* Skeleton implementation for Bison LALR(1) parsers in C++
-
-- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
-- Free Software Foundation, Inc.
-+ Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
-@@ -33,1476 +32,363 @@
- This special exception was added by the Free Software Foundation in
- version 2.2 of Bison. */
-
--/* C LALR(1) parser skeleton written by Richard Stallman, by
-- simplifying the original so-called "semantic" parser. */
-+// Take the name prefix into account.
-+#define yylex QMakelex
-
--/* All symbols defined below should begin with yy or YY, to avoid
-- infringing on user name space. This should be done even for local
-- variables, as they might otherwise be expanded by user macros.
-- There are some unavoidable exceptions within include files to
-- define necessary library symbols; they are noted "INFRINGES ON
-- USER NAME SPACE" below. */
--
--/* Identify Bison output. */
--#define YYBISON 1
--
--/* Bison version. */
--#define YYBISON_VERSION "2.3"
--
--/* Skeleton name. */
--#define YYSKELETON_NAME "yacc.c"
--
--/* Pure parsers. */
--#define YYPURE 0
--
--/* Using locations. */
--#define YYLSP_NEEDED 0
-+#include "qmake_yacc.hpp"
-
-+/* User implementation prologue. */
-
-
--/* Tokens. */
--#ifndef YYTOKENTYPE
--# define YYTOKENTYPE
-- /* Put the tokens into the symbol table, so that GDB and other debuggers
-- know about them. */
-- enum yytokentype {
-- ID_SIMPLE = 258,
-- EQ = 259,
-- PLUSEQ = 260,
-- MINUSQE = 261,
-- STAREQ = 262,
-- TILDEEQ = 263,
-- LBRACE = 264,
-- RBRACE = 265,
-- COLON = 266,
-- NUMSIGN = 267,
-- NEWLINE = 268,
-- NUMBER = 269,
-- COMMENT = 270,
-- CONT = 271,
-- RCURLY = 272,
-- LCURLY = 273,
-- ID_ARGS = 274,
-- LIST_COMMENT = 275,
-- LIST_COMMENT_WITHOUT_NEWLINE = 276,
-- QUOTED_VARIABLE_VALUE = 277,
-- VARIABLE_VALUE = 278,
-- INDENT = 279,
-- LIST_WS = 280
-- };
--#endif
--/* Tokens. */
--#define ID_SIMPLE 258
--#define EQ 259
--#define PLUSEQ 260
--#define MINUSQE 261
--#define STAREQ 262
--#define TILDEEQ 263
--#define LBRACE 264
--#define RBRACE 265
--#define COLON 266
--#define NUMSIGN 267
--#define NEWLINE 268
--#define NUMBER 269
--#define COMMENT 270
--#define CONT 271
--#define RCURLY 272
--#define LCURLY 273
--#define ID_ARGS 274
--#define LIST_COMMENT 275
--#define LIST_COMMENT_WITHOUT_NEWLINE 276
--#define QUOTED_VARIABLE_VALUE 277
--#define VARIABLE_VALUE 278
--#define INDENT 279
--#define LIST_WS 280
--
--
--
--
--/* Copy the first part of user declarations. */
--#line 1 "qmake.yy"
--
--/***************************************************************************
-- * Copyright (C) 2005 by Alexander Dymo *
-- * adymo@kdevelop.org *
-- * *
-- * This program is free software; you can redistribute it and/or modify *
-- * it under the terms of the GNU Library General Public License as *
-- * published by the Free Software Foundation; either version 2 of the *
-- * License, or (at your option) any later version. *
-- * *
-- * This program is distributed in the hope that it will be useful, *
-- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
-- * GNU General Public License for more details. *
-- * *
-- * You should have received a copy of the GNU Library General Public *
-- * License along with this program; if not, write to the *
-- * Free Software Foundation, Inc., *
-- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
-- ***************************************************************************/
--
--/**
--@file qmake.yy
--QMake Parser
--
--Simple LALR parser which builds the syntax tree (see @ref QMake::AST).
--
--@todo Recognize comments after statements like:
--SOURCES = foo #regognize me
--
--@fixme Parser fails on files that do not end with a newline
--@fixme 1 shift/reduce conflict in "line_body" rule
--*/
--
--#include <qvaluestack.h>
--#include "qmakeast.h"
--#include <qregexp.h>
--
--#define YYSTYPE_IS_DECLARED
--
--using namespace QMake;
--
--/**
--The yylval type.
--*/
--struct Result {
-- Result(): node(0) {}
--
-- /**Type of semantic value for simple grammar rules.*/
-- QString value;
-- /**Type of semantic value for grammar rules which are parts of AST.*/
-- AST *node;
-- /**Type of semantic value for "multiline_values" grammar rule.
-- Each line of multiline value is stored as a string in the list.
--
-- For example we have in .pro file:
-- @code
-- SOURCE = foo1.cpp \
-- foo2.cpp \
-- foo3.cpp foo4.cpp
-- @endcode
-- The string list will be populated with three strings:
-- <pre>
-- foo1.cpp
-- foo2.cpp
-- foo3.cpp foo4.cpp
-- </pre>
-- */
-- QStringList values;
-- QString indent;
--};
--
--typedef Result YYSTYPE;
--
--void yyerror(const char *str) {
-- printf("%s\n", str);
--}
--
--int yylex();
--
--/**
--The stack to store ProjectAST pointers when a new child
--ProjectAST is created and filled with statements.
--
--Parser creates root ProjectAST for a .pro file, pushes it onto the stack and starts
--adding statements. Each statement is added as a child StatementAST to the ProjectAST
--currently on the top in the stack.
--
--When a scope or function scope statement is parsed, the child ProjectAST is created
--and pushed onto the stack. Therefore all statements which belong to the scope
--or function scope are added as childs to their direct parent (scope or function scope).
--*/
--QValueStack<ProjectAST*> projects;
--
--/**
--The current depth of AST node is stored here.
--AST depth is important to know because automatic indentation can
--be easily implemented (the parser itself looses all information
--about indentation).
--*/
--int depth = 0;
--
--/*
--To debug this parser, put the line below into the next bison file section.
--Don't forget to uncomment "yydebug = 1" line in qmakedriver.cpp.
--%debug
--*/
--
--
--/* Enabling traces. */
--#ifndef YYDEBUG
--# define YYDEBUG 0
--#endif
--
--/* Enabling verbose error messages. */
--#ifdef YYERROR_VERBOSE
--# undef YYERROR_VERBOSE
--# define YYERROR_VERBOSE 1
--#else
--# define YYERROR_VERBOSE 0
--#endif
--
--/* Enabling the token table. */
--#ifndef YYTOKEN_TABLE
--# define YYTOKEN_TABLE 0
--#endif
--
--#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
--typedef int YYSTYPE;
--# define yystype YYSTYPE /* obsolescent; will be withdrawn */
--# define YYSTYPE_IS_DECLARED 1
--# define YYSTYPE_IS_TRIVIAL 1
--#endif
--
--
--
--/* Copy the second part of user declarations. */
--
--
--/* Line 216 of yacc.c. */
--#line 265 "qmake_yacc.cpp"
--
--#ifdef short
--# undef short
--#endif
--
--#ifdef YYTYPE_UINT8
--typedef YYTYPE_UINT8 yytype_uint8;
--#else
--typedef unsigned char yytype_uint8;
--#endif
--
--#ifdef YYTYPE_INT8
--typedef YYTYPE_INT8 yytype_int8;
--#elif (defined __STDC__ || defined __C99__FUNC__ \
-- || defined __cplusplus || defined _MSC_VER)
--typedef signed char yytype_int8;
--#else
--typedef short int yytype_int8;
--#endif
--
--#ifdef YYTYPE_UINT16
--typedef YYTYPE_UINT16 yytype_uint16;
--#else
--typedef unsigned short int yytype_uint16;
--#endif
--
--#ifdef YYTYPE_INT16
--typedef YYTYPE_INT16 yytype_int16;
--#else
--typedef short int yytype_int16;
--#endif
--
--#ifndef YYSIZE_T
--# ifdef __SIZE_TYPE__
--# define YYSIZE_T __SIZE_TYPE__
--# elif defined size_t
--# define YYSIZE_T size_t
--# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
-- || defined __cplusplus || defined _MSC_VER)
--# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
--# define YYSIZE_T size_t
--# else
--# define YYSIZE_T unsigned int
--# endif
--#endif
--
--#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
-+/* Line 317 of lalr1.cc. */
-+#line 45 "qmake_yacc.cpp"
-
- #ifndef YY_
- # if YYENABLE_NLS
- # if ENABLE_NLS
--# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
-+# include <libintl.h> /* FIXME: INFRINGES ON USER NAME SPACE */
- # define YY_(msgid) dgettext ("bison-runtime", msgid)
- # endif
- # endif
- # ifndef YY_
- # define YY_(msgid) msgid
- # endif
--#endif
--
--/* Suppress unused-variable warnings by "using" E. */
--#if ! defined lint || defined __GNUC__
--# define YYUSE(e) ((void) (e))
--#else
--# define YYUSE(e) /* empty */
--#endif
--
--/* Identity function, used to suppress warnings about constant conditions. */
--#ifndef lint
--# define YYID(n) (n)
--#else
--#if (defined __STDC__ || defined __C99__FUNC__ \
-- || defined __cplusplus || defined _MSC_VER)
--static int
--YYID (int i)
--#else
--static int
--YYID (i)
-- int i;
--#endif
--{
-- return i;
--}
--#endif
--
--#if ! defined yyoverflow || YYERROR_VERBOSE
--
--/* The parser invokes alloca or malloc; define the necessary symbols. */
--
--# ifdef YYSTACK_USE_ALLOCA
--# if YYSTACK_USE_ALLOCA
--# ifdef __GNUC__
--# define YYSTACK_ALLOC __builtin_alloca
--# elif defined __BUILTIN_VA_ARG_INCR
--# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
--# elif defined _AIX
--# define YYSTACK_ALLOC __alloca
--# elif defined _MSC_VER
--# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
--# define alloca _alloca
--# else
--# define YYSTACK_ALLOC alloca
--# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
-- || defined __cplusplus || defined _MSC_VER)
--# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
--# ifndef _STDLIB_H
--# define _STDLIB_H 1
--# endif
--# endif
--# endif
--# endif
--# endif
--
--# ifdef YYSTACK_ALLOC
-- /* Pacify GCC's `empty if-body' warning. */
--# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
--# ifndef YYSTACK_ALLOC_MAXIMUM
-- /* The OS might guarantee only one guard page at the bottom of the stack,
-- and a page size can be as small as 4096 bytes. So we cannot safely
-- invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
-- to allow for a few compiler-allocated temporary stack slots. */
--# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
--# endif
--# else
--# define YYSTACK_ALLOC YYMALLOC
--# define YYSTACK_FREE YYFREE
--# ifndef YYSTACK_ALLOC_MAXIMUM
--# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
--# endif
--# if (defined __cplusplus && ! defined _STDLIB_H \
-- && ! ((defined YYMALLOC || defined malloc) \
-- && (defined YYFREE || defined free)))
--# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
--# ifndef _STDLIB_H
--# define _STDLIB_H 1
--# endif
--# endif
--# ifndef YYMALLOC
--# define YYMALLOC malloc
--# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
-- || defined __cplusplus || defined _MSC_VER)
--void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
--# endif
--# endif
--# ifndef YYFREE
--# define YYFREE free
--# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
-- || defined __cplusplus || defined _MSC_VER)
--void free (void *); /* INFRINGES ON USER NAME SPACE */
--# endif
--# endif
--# endif
--#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
--
--
--#if (! defined yyoverflow \
-- && (! defined __cplusplus \
-- || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
--
--/* A type that is properly aligned for any stack member. */
--union yyalloc
--{
-- yytype_int16 yyss;
-- YYSTYPE yyvs;
-- };
--
--/* The size of the maximum gap between one aligned stack and the next. */
--# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
--
--/* The size of an array large to enough to hold all stacks, each with
-- N elements. */
--# define YYSTACK_BYTES(N) \
-- ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
-- + YYSTACK_GAP_MAXIMUM)
--
--/* Copy COUNT objects from FROM to TO. The source and destination do
-- not overlap. */
--# ifndef YYCOPY
--# if defined __GNUC__ && 1 < __GNUC__
--# define YYCOPY(To, From, Count) \
-- __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
--# else
--# define YYCOPY(To, From, Count) \
-- do \
-- { \
-- YYSIZE_T yyi; \
-- for (yyi = 0; yyi < (Count); yyi++) \
-- (To)[yyi] = (From)[yyi]; \
-- } \
-- while (YYID (0))
--# endif
--# endif
--
--/* Relocate STACK from its old location to the new one. The
-- local variables YYSIZE and YYSTACKSIZE give the old and new number of
-- elements in the stack, and YYPTR gives the new location of the
-- stack. Advance YYPTR to a properly aligned location for the next
-- stack. */
--# define YYSTACK_RELOCATE(Stack) \
-- do \
-- { \
-- YYSIZE_T yynewbytes; \
-- YYCOPY (&yyptr->Stack, Stack, yysize); \
-- Stack = &yyptr->Stack; \
-- yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
-- yyptr += yynewbytes / sizeof (*yyptr); \
-- } \
-- while (YYID (0))
--
--#endif
--
--/* YYFINAL -- State number of the termination state. */
--#define YYFINAL 3
--/* YYLAST -- Last index in YYTABLE. */
--#define YYLAST 37
--
--/* YYNTOKENS -- Number of terminals. */
--#define YYNTOKENS 27
--/* YYNNTS -- Number of nonterminals. */
--#define YYNNTS 21
--/* YYNRULES -- Number of rules. */
--#define YYNRULES 44
--/* YYNRULES -- Number of states. */
--#define YYNSTATES 54
--
--/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
--#define YYUNDEFTOK 2
--#define YYMAXUTOK 281
--
--#define YYTRANSLATE(YYX) \
-- ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
--
--/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
--static const yytype_uint8 yytranslate[] =
--{
-- 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-- 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
-- 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
-- 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
-- 25, 26
--};
--
--#if YYDEBUG
--/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
-- YYRHS. */
--static const yytype_uint8 yyprhs[] =
--{
-- 0, 0, 3, 4, 7, 10, 11, 13, 15, 17,
-- 19, 21, 25, 29, 30, 33, 35, 37, 39, 41,
-- 43, 45, 47, 49, 50, 52, 54, 56, 58, 60,
-- 62, 64, 65, 69, 70, 78, 80, 81, 85, 88,
-- 89, 90, 96, 97, 100
--};
--
--/* YYRHS -- A `-1'-separated list of the rules' RHS. */
--static const yytype_int8 yyrhs[] =
--{
-- 28, 0, -1, -1, 29, 30, -1, 30, 31, -1,
-- -1, 32, -1, 38, -1, 40, -1, 46, -1, 47,
-- -1, 3, 37, 33, -1, 33, 34, 35, -1, -1,
-- 34, 36, -1, 36, -1, 16, -1, 13, -1, 25,
-- -1, 24, -1, 20, -1, 10, -1, 21, -1, -1,
-- 23, -1, 22, -1, 4, -1, 5, -1, 6, -1,
-- 7, -1, 8, -1, -1, 3, 39, 43, -1, -1,
-- 3, 9, 42, 10, 41, 43, 44, -1, 19, -1,
-- -1, 18, 30, 17, -1, 11, 31, -1, -1, -1,
-- 26, 18, 45, 43, 17, -1, -1, 15, 13, -1,
-- 13, -1
--};
--
--/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
--static const yytype_uint16 yyrline[] =
--{
-- 0, 136, 136, 136, 143, 148, 151, 155, 159, 163,
-- 167, 173, 185, 193, 200, 201, 202, 203, 204, 205,
-- 211, 212, 215, 222, 227, 228, 231, 231, 231, 231,
-- 231, 235, 234, 249, 248, 273, 274, 277, 278, 283,
-- 287, 286, 300, 305, 313
--};
--#endif
--
--#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
--/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
-- First, the terminals, then, starting at YYNTOKENS, nonterminals. */
--static const char *const yytname[] =
--{
-- "$end", "error", "$undefined", "ID_SIMPLE", "EQ", "PLUSEQ", "MINUSQE",
-- "STAREQ", "TILDEEQ", "LBRACE", "RBRACE", "COLON", "NUMSIGN", "NEWLINE",
-- "NUMBER", "COMMENT", "CONT", "RCURLY", "LCURLY", "ID_ARGS",
-- "LIST_COMMENT", "LIST_COMMENT_WITHOUT_NEWLINE", "QUOTED_VARIABLE_VALUE",
-- "VARIABLE_VALUE", "INDENT", "LIST_WS", "\"else\"", "$accept", "project",
-- "@1", "statements", "statement", "variable_assignment",
-- "multiline_values", "line_body", "opt_comment", "variable_value",
-- "operator", "scope", "@2", "function_call", "@3", "function_args",
-- "scope_body", "else_statement", "@4", "comment", "emptyline", 0
--};
--#endif
--
--# ifdef YYPRINT
--/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
-- token YYLEX-NUM. */
--static const yytype_uint16 yytoknum[] =
--{
-- 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
-- 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
-- 275, 276, 277, 278, 279, 280, 281
--};
--# endif
--
--/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
--static const yytype_uint8 yyr1[] =
--{
-- 0, 27, 29, 28, 30, 30, 31, 31, 31, 31,
-- 31, 32, 33, 33, 34, 34, 34, 34, 34, 34,
-- 34, 34, 35, 35, 36, 36, 37, 37, 37, 37,
-- 37, 39, 38, 41, 40, 42, 42, 43, 43, 43,
-- 45, 44, 44, 46, 47
--};
--
--/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
--static const yytype_uint8 yyr2[] =
--{
-- 0, 2, 0, 2, 2, 0, 1, 1, 1, 1,
-- 1, 3, 3, 0, 2, 1, 1, 1, 1, 1,
-- 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
-- 1, 0, 3, 0, 7, 1, 0, 3, 2, 0,
-- 0, 5, 0, 2, 1
--};
--
--/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
-- STATE-NUM when YYTABLE doesn't specify something else to do. Zero
-- means the default is an error. */
--static const yytype_uint8 yydefact[] =
--{
-- 2, 0, 5, 1, 3, 31, 44, 0, 4, 6,
-- 7, 8, 9, 10, 26, 27, 28, 29, 30, 36,
-- 13, 39, 43, 35, 0, 11, 0, 5, 32, 33,
-- 21, 17, 16, 20, 25, 24, 19, 18, 23, 15,
-- 38, 0, 39, 22, 12, 14, 37, 42, 0, 34,
-- 40, 39, 0, 41
--};
--
--/* YYDEFGOTO[NTERM-NUM]. */
--static const yytype_int8 yydefgoto[] =
--{
-- -1, 1, 2, 4, 8, 9, 25, 38, 44, 39,
-- 20, 10, 21, 11, 42, 24, 28, 49, 51, 12,
-- 13
--};
--
--/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
-- STATE-NUM. */
--#define YYPACT_NINF -41
--static const yytype_int8 yypact[] =
--{
-- -41, 1, -41, -41, 5, 18, -41, -9, -41, -41,
-- -41, -41, -41, -41, -41, -41, -41, -41, -41, -14,
-- -41, -2, -41, -41, 21, -10, 5, -41, -41, -41,
-- -41, -41, -41, -41, -41, -41, -41, -41, 7, -41,
-- -41, 4, -2, -41, -41, -41, -41, 6, 15, -41,
-- -41, -2, 17, -41
--};
--
--/* YYPGOTO[NTERM-NUM]. */
--static const yytype_int8 yypgoto[] =
--{
-- -41, -41, -41, 8, 10, -41, -41, -41, -41, -1,
-- -41, -41, -41, -41, -41, -41, -40, -41, -41, -41,
-- -41
--};
--
--/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
-- positive, shift that token. If negative, reduce the rule which
-- number is the opposite. If zero, do what YYDEFACT says.
-- If YYTABLE_NINF, syntax error. */
--#define YYTABLE_NINF -1
--static const yytype_uint8 yytable[] =
--{
-- 30, 3, 47, 31, 22, 23, 32, 5, 5, 26,
-- 33, 52, 34, 35, 36, 37, 27, 6, 6, 7,
-- 7, 46, 14, 15, 16, 17, 18, 19, 43, 34,
-- 35, 29, 48, 50, 53, 41, 40, 45
--};
--
--static const yytype_uint8 yycheck[] =
--{
-- 10, 0, 42, 13, 13, 19, 16, 3, 3, 11,
-- 20, 51, 22, 23, 24, 25, 18, 13, 13, 15,
-- 15, 17, 4, 5, 6, 7, 8, 9, 21, 22,
-- 23, 10, 26, 18, 17, 27, 26, 38
--};
--
--/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
-- symbol of state STATE-NUM. */
--static const yytype_uint8 yystos[] =
--{
-- 0, 28, 29, 0, 30, 3, 13, 15, 31, 32,
-- 38, 40, 46, 47, 4, 5, 6, 7, 8, 9,
-- 37, 39, 13, 19, 42, 33, 11, 18, 43, 10,
-- 10, 13, 16, 20, 22, 23, 24, 25, 34, 36,
-- 31, 30, 41, 21, 35, 36, 17, 43, 26, 44,
-- 18, 45, 43, 17
--};
--
--#define yyerrok (yyerrstatus = 0)
--#define yyclearin (yychar = YYEMPTY)
--#define YYEMPTY (-2)
--#define YYEOF 0
--
--#define YYACCEPT goto yyacceptlab
--#define YYABORT goto yyabortlab
--#define YYERROR goto yyerrorlab
--
--
--/* Like YYERROR except do call yyerror. This remains here temporarily
-- to ease the transition to the new meaning of YYERROR, for GCC.
-- Once GCC version 2 has supplanted version 1, this can go. */
--
--#define YYFAIL goto yyerrlab
--
--#define YYRECOVERING() (!!yyerrstatus)
--
--#define YYBACKUP(Token, Value) \
--do \
-- if (yychar == YYEMPTY && yylen == 1) \
-- { \
-- yychar = (Token); \
-- yylval = (Value); \
-- yytoken = YYTRANSLATE (yychar); \
-- YYPOPSTACK (1); \
-- goto yybackup; \
-- } \
-- else \
-- { \
-- yyerror (YY_("syntax error: cannot back up")); \
-- YYERROR; \
-- } \
--while (YYID (0))
--
--
--#define YYTERROR 1
--#define YYERRCODE 256
--
--
--/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
-- If N is 0, then set CURRENT to the empty location which ends
-- the previous symbol: RHS[0] (always defined). */
--
--#define YYRHSLOC(Rhs, K) ((Rhs)[K])
--#ifndef YYLLOC_DEFAULT
--# define YYLLOC_DEFAULT(Current, Rhs, N) \
-- do \
-- if (YYID (N)) \
-- { \
-- (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
-- (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
-- (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
-- (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
-- } \
-- else \
-- { \
-- (Current).first_line = (Current).last_line = \
-- YYRHSLOC (Rhs, 0).last_line; \
-- (Current).first_column = (Current).last_column = \
-- YYRHSLOC (Rhs, 0).last_column; \
-- } \
-- while (YYID (0))
--#endif
--
--
--/* YY_LOCATION_PRINT -- Print the location on the stream.
-- This macro was not mandated originally: define only if we know
-- we won't break user code: when these are the locations we know. */
--
--#ifndef YY_LOCATION_PRINT
--# if YYLTYPE_IS_TRIVIAL
--# define YY_LOCATION_PRINT(File, Loc) \
-- fprintf (File, "%d.%d-%d.%d", \
-- (Loc).first_line, (Loc).first_column, \
-- (Loc).last_line, (Loc).last_column)
--# else
--# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
--# endif
--#endif
--
--
--/* YYLEX -- calling `yylex' with the right arguments. */
--
--#ifdef YYLEX_PARAM
--# define YYLEX yylex (YYLEX_PARAM)
--#else
--# define YYLEX yylex ()
--#endif
--
--/* Enable debugging if requested. */
--#if YYDEBUG
--
--# ifndef YYFPRINTF
--# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
--# define YYFPRINTF fprintf
--# endif
--
--# define YYDPRINTF(Args) \
--do { \
-- if (yydebug) \
-- YYFPRINTF Args; \
--} while (YYID (0))
--
--# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
--do { \
-- if (yydebug) \
-- { \
-- YYFPRINTF (stderr, "%s ", Title); \
-- yy_symbol_print (stderr, \
-- Type, Value); \
-- YYFPRINTF (stderr, "\n"); \
-- } \
--} while (YYID (0))
--
--
--/*--------------------------------.
--| Print this symbol on YYOUTPUT. |
--`--------------------------------*/
--
--/*ARGSUSED*/
--#if (defined __STDC__ || defined __C99__FUNC__ \
-- || defined __cplusplus || defined _MSC_VER)
--static void
--yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
--#else
--static void
--yy_symbol_value_print (yyoutput, yytype, yyvaluep)
-- FILE *yyoutput;
-- int yytype;
-- YYSTYPE const * const yyvaluep;
--#endif
--{
-- if (!yyvaluep)
-- return;
--# ifdef YYPRINT
-- if (yytype < YYNTOKENS)
-- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
--# else
-- YYUSE (yyoutput);
--# endif
-- switch (yytype)
-- {
-- default:
-- break;
-- }
--}
--
--
--/*--------------------------------.
--| Print this symbol on YYOUTPUT. |
--`--------------------------------*/
--
--#if (defined __STDC__ || defined __C99__FUNC__ \
-- || defined __cplusplus || defined _MSC_VER)
--static void
--yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
--#else
--static void
--yy_symbol_print (yyoutput, yytype, yyvaluep)
-- FILE *yyoutput;
-- int yytype;
-- YYSTYPE const * const yyvaluep;
--#endif
--{
-- if (yytype < YYNTOKENS)
-- YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
-- else
-- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
--
-- yy_symbol_value_print (yyoutput, yytype, yyvaluep);
-- YYFPRINTF (yyoutput, ")");
--}
--
--/*------------------------------------------------------------------.
--| yy_stack_print -- Print the state stack from its BOTTOM up to its |
--| TOP (included). |
--`------------------------------------------------------------------*/
--
--#if (defined __STDC__ || defined __C99__FUNC__ \
-- || defined __cplusplus || defined _MSC_VER)
--static void
--yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
--#else
--static void
--yy_stack_print (bottom, top)
-- yytype_int16 *bottom;
-- yytype_int16 *top;
--#endif
--{
-- YYFPRINTF (stderr, "Stack now");
-- for (; bottom <= top; ++bottom)
-- YYFPRINTF (stderr, " %d", *bottom);
-- YYFPRINTF (stderr, "\n");
--}
--
--# define YY_STACK_PRINT(Bottom, Top) \
--do { \
-- if (yydebug) \
-- yy_stack_print ((Bottom), (Top)); \
--} while (YYID (0))
--
--
--/*------------------------------------------------.
--| Report that the YYRULE is going to be reduced. |
--`------------------------------------------------*/
--
--#if (defined __STDC__ || defined __C99__FUNC__ \
-- || defined __cplusplus || defined _MSC_VER)
--static void
--yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
--#else
--static void
--yy_reduce_print (yyvsp, yyrule)
-- YYSTYPE *yyvsp;
-- int yyrule;
--#endif
--{
-- int yynrhs = yyr2[yyrule];
-- int yyi;
-- unsigned long int yylno = yyrline[yyrule];
-- YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
-- yyrule - 1, yylno);
-- /* The symbols being reduced. */
-- for (yyi = 0; yyi < yynrhs; yyi++)
-- {
-- fprintf (stderr, " $%d = ", yyi + 1);
-- yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
-- &(yyvsp[(yyi + 1) - (yynrhs)])
-- );
-- fprintf (stderr, "\n");
-- }
--}
--
--# define YY_REDUCE_PRINT(Rule) \
--do { \
-- if (yydebug) \
-- yy_reduce_print (yyvsp, Rule); \
--} while (YYID (0))
--
--/* Nonzero means print parse trace. It is left uninitialized so that
-- multiple parsers can coexist. */
--int yydebug;
--#else /* !YYDEBUG */
--# define YYDPRINTF(Args)
--# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
--# define YY_STACK_PRINT(Bottom, Top)
--# define YY_REDUCE_PRINT(Rule)
--#endif /* !YYDEBUG */
--
--
--/* YYINITDEPTH -- initial size of the parser's stacks. */
--#ifndef YYINITDEPTH
--# define YYINITDEPTH 200
--#endif
--
--/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
-- if the built-in stack extension method is used).
--
-- Do not make this value too large; the results are undefined if
-- YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
-- evaluated with infinite-precision integer arithmetic. */
--
--#ifndef YYMAXDEPTH
--# define YYMAXDEPTH 10000
--#endif
--
--
--
--#if YYERROR_VERBOSE
--
--# ifndef yystrlen
--# if defined __GLIBC__ && defined _STRING_H
--# define yystrlen strlen
--# else
--/* Return the length of YYSTR. */
--#if (defined __STDC__ || defined __C99__FUNC__ \
-- || defined __cplusplus || defined _MSC_VER)
--static YYSIZE_T
--yystrlen (const char *yystr)
--#else
--static YYSIZE_T
--yystrlen (yystr)
-- const char *yystr;
--#endif
--{
-- YYSIZE_T yylen;
-- for (yylen = 0; yystr[yylen]; yylen++)
-- continue;
-- return yylen;
--}
--# endif
--# endif
--
--# ifndef yystpcpy
--# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
--# define yystpcpy stpcpy
--# else
--/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
-- YYDEST. */
--#if (defined __STDC__ || defined __C99__FUNC__ \
-- || defined __cplusplus || defined _MSC_VER)
--static char *
--yystpcpy (char *yydest, const char *yysrc)
--#else
--static char *
--yystpcpy (yydest, yysrc)
-- char *yydest;
-- const char *yysrc;
--#endif
--{
-- char *yyd = yydest;
-- const char *yys = yysrc;
--
-- while ((*yyd++ = *yys++) != '\0')
-- continue;
--
-- return yyd - 1;
--}
--# endif
--# endif
--
--# ifndef yytnamerr
--/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
-- quotes and backslashes, so that it's suitable for yyerror. The
-- heuristic is that double-quoting is unnecessary unless the string
-- contains an apostrophe, a comma, or backslash (other than
-- backslash-backslash). YYSTR is taken from yytname. If YYRES is
-- null, do not copy; instead, return the length of what the result
-- would have been. */
--static YYSIZE_T
--yytnamerr (char *yyres, const char *yystr)
--{
-- if (*yystr == '"')
-- {
-- YYSIZE_T yyn = 0;
-- char const *yyp = yystr;
--
-- for (;;)
-- switch (*++yyp)
-- {
-- case '\'':
-- case ',':
-- goto do_not_strip_quotes;
--
-- case '\\':
-- if (*++yyp != '\\')
-- goto do_not_strip_quotes;
-- /* Fall through. */
-- default:
-- if (yyres)
-- yyres[yyn] = *yyp;
-- yyn++;
-- break;
--
-- case '"':
-- if (yyres)
-- yyres[yyn] = '\0';
-- return yyn;
-- }
-- do_not_strip_quotes: ;
-- }
--
-- if (! yyres)
-- return yystrlen (yystr);
--
-- return yystpcpy (yyres, yystr) - yyres;
--}
--# endif
--
--/* Copy into YYRESULT an error message about the unexpected token
-- YYCHAR while in state YYSTATE. Return the number of bytes copied,
-- including the terminating null byte. If YYRESULT is null, do not
-- copy anything; just return the number of bytes that would be
-- copied. As a special case, return 0 if an ordinary "syntax error"
-- message will do. Return YYSIZE_MAXIMUM if overflow occurs during
-- size calculation. */
--static YYSIZE_T
--yysyntax_error (char *yyresult, int yystate, int yychar)
--{
-- int yyn = yypact[yystate];
--
-- if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
-- return 0;
-- else
-- {
-- int yytype = YYTRANSLATE (yychar);
-- YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
-- YYSIZE_T yysize = yysize0;
-- YYSIZE_T yysize1;
-- int yysize_overflow = 0;
-- enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
-- char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
-- int yyx;
--
--# if 0
-- /* This is so xgettext sees the translatable formats that are
-- constructed on the fly. */
-- YY_("syntax error, unexpected %s");
-- YY_("syntax error, unexpected %s, expecting %s");
-- YY_("syntax error, unexpected %s, expecting %s or %s");
-- YY_("syntax error, unexpected %s, expecting %s or %s or %s");
-- YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
--# endif
-- char *yyfmt;
-- char const *yyf;
-- static char const yyunexpected[] = "syntax error, unexpected %s";
-- static char const yyexpecting[] = ", expecting %s";
-- static char const yyor[] = " or %s";
-- char yyformat[sizeof yyunexpected
-- + sizeof yyexpecting - 1
-- + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
-- * (sizeof yyor - 1))];
-- char const *yyprefix = yyexpecting;
--
-- /* Start YYX at -YYN if negative to avoid negative indexes in
-- YYCHECK. */
-- int yyxbegin = yyn < 0 ? -yyn : 0;
--
-- /* Stay within bounds of both yycheck and yytname. */
-- int yychecklim = YYLAST - yyn + 1;
-- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
-- int yycount = 1;
--
-- yyarg[0] = yytname[yytype];
-- yyfmt = yystpcpy (yyformat, yyunexpected);
--
-- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
-- {
-- if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
-- {
-- yycount = 1;
-- yysize = yysize0;
-- yyformat[sizeof yyunexpected - 1] = '\0';
-- break;
-- }
-- yyarg[yycount++] = yytname[yyx];
-- yysize1 = yysize + yytnamerr (0, yytname[yyx]);
-- yysize_overflow |= (yysize1 < yysize);
-- yysize = yysize1;
-- yyfmt = yystpcpy (yyfmt, yyprefix);
-- yyprefix = yyor;
-- }
--
-- yyf = YY_(yyformat);
-- yysize1 = yysize + yystrlen (yyf);
-- yysize_overflow |= (yysize1 < yysize);
-- yysize = yysize1;
--
-- if (yysize_overflow)
-- return YYSIZE_MAXIMUM;
--
-- if (yyresult)
-- {
-- /* Avoid sprintf, as that infringes on the user's name space.
-- Don't have undefined behavior even if the translation
-- produced a string with the wrong number of "%s"s. */
-- char *yyp = yyresult;
-- int yyi = 0;
-- while ((*yyp = *yyf) != '\0')
-- {
-- if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
-- {
-- yyp += yytnamerr (yyp, yyarg[yyi++]);
-- yyf += 2;
-- }
-- else
-- {
-- yyp++;
-- yyf++;
-- }
-- }
-- }
-- return yysize;
-- }
--}
--#endif /* YYERROR_VERBOSE */
--
--
--/*-----------------------------------------------.
--| Release the memory associated to this symbol. |
--`-----------------------------------------------*/
--
--/*ARGSUSED*/
--#if (defined __STDC__ || defined __C99__FUNC__ \
-- || defined __cplusplus || defined _MSC_VER)
--static void
--yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
--#else
--static void
--yydestruct (yymsg, yytype, yyvaluep)
-- const char *yymsg;
-- int yytype;
-- YYSTYPE *yyvaluep;
--#endif
--{
-- YYUSE (yyvaluep);
--
-- if (!yymsg)
-- yymsg = "Deleting";
-- YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
--
-- switch (yytype)
-- {
--
-- default:
-- break;
-- }
--}
--
--
--/* Prevent warnings from -Wmissing-prototypes. */
--
--#ifdef YYPARSE_PARAM
--#if defined __STDC__ || defined __cplusplus
--int yyparse (void *YYPARSE_PARAM);
--#else
--int yyparse ();
--#endif
--#else /* ! YYPARSE_PARAM */
--#if defined __STDC__ || defined __cplusplus
--int yyparse (void);
--#else
--int yyparse ();
--#endif
--#endif /* ! YYPARSE_PARAM */
--
--
--
--/* The look-ahead symbol. */
--int yychar;
--
--/* The semantic value of the look-ahead symbol. */
--YYSTYPE yylval;
--
--/* Number of syntax errors so far. */
--int yynerrs;
--
-+#endif
-
-+/* Suppress unused-variable warnings by "using" E. */
-+#define YYUSE(e) ((void) (e))
-
--/*----------.
--| yyparse. |
--`----------*/
-+/* A pseudo ostream that takes yydebug_ into account. */
-+# define YYCDEBUG \
-+ for (bool yydebugcond_ = yydebug_; yydebugcond_; yydebugcond_ = false) \
-+ (*yycdebug_)
-
--#ifdef YYPARSE_PARAM
--#if (defined __STDC__ || defined __C99__FUNC__ \
-- || defined __cplusplus || defined _MSC_VER)
--int
--yyparse (void *YYPARSE_PARAM)
--#else
--int
--yyparse (YYPARSE_PARAM)
-- void *YYPARSE_PARAM;
--#endif
--#else /* ! YYPARSE_PARAM */
--#if (defined __STDC__ || defined __C99__FUNC__ \
-- || defined __cplusplus || defined _MSC_VER)
--int
--yyparse (void)
--#else
--int
--yyparse ()
-+/* Enable debugging if requested. */
-+#if YYDEBUG
-
--#endif
--#endif
--{
--
-- int yystate;
-- int yyn;
-- int yyresult;
-- /* Number of tokens to shift before error messages enabled. */
-- int yyerrstatus;
-- /* Look-ahead token as an internal (translated) token number. */
-- int yytoken = 0;
--#if YYERROR_VERBOSE
-- /* Buffer for error messages, and its allocated size. */
-- char yymsgbuf[128];
-- char *yymsg = yymsgbuf;
-- YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
--#endif
-+# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
-+do { \
-+ if (yydebug_) \
-+ { \
-+ *yycdebug_ << Title << ' '; \
-+ yy_symbol_print_ ((Type), (Value), (Location)); \
-+ *yycdebug_ << std::endl; \
-+ } \
-+} while (false)
-
-- /* Three stacks and their tools:
-- `yyss': related to states,
-- `yyvs': related to semantic values,
-- `yyls': related to locations.
-+# define YY_REDUCE_PRINT(Rule) \
-+do { \
-+ if (yydebug_) \
-+ yy_reduce_print_ (Rule); \
-+} while (false)
-
-- Refer to the stacks thru separate pointers, to allow yyoverflow
-- to reallocate them elsewhere. */
-+# define YY_STACK_PRINT() \
-+do { \
-+ if (yydebug_) \
-+ yystack_print_ (); \
-+} while (false)
-
-- /* The state stack. */
-- yytype_int16 yyssa[YYINITDEPTH];
-- yytype_int16 *yyss = yyssa;
-- yytype_int16 *yyssp;
-+#else /* !YYDEBUG */
-
-- /* The semantic value stack. */
-- YYSTYPE yyvsa[YYINITDEPTH];
-- YYSTYPE *yyvs = yyvsa;
-- YYSTYPE *yyvsp;
-+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
-+# define YY_REDUCE_PRINT(Rule)
-+# define YY_STACK_PRINT()
-
-+#endif /* !YYDEBUG */
-
-+#define YYACCEPT goto yyacceptlab
-+#define YYABORT goto yyabortlab
-+#define YYERROR goto yyerrorlab
-
--#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
-+namespace QMake
-+{
-+#if YYERROR_VERBOSE
-
-- YYSIZE_T yystacksize = YYINITDEPTH;
-+ /* Return YYSTR after stripping away unnecessary quotes and
-+ backslashes, so that it's suitable for yyerror. The heuristic is
-+ that double-quoting is unnecessary unless the string contains an
-+ apostrophe, a comma, or backslash (other than backslash-backslash).
-+ YYSTR is taken from yytname. */
-+ std::string
-+ Parser::yytnamerr_ (const char *yystr)
-+ {
-+ if (*yystr == '"')
-+ {
-+ std::string yyr = "";
-+ char const *yyp = yystr;
-
-- /* The variables used to return semantic value and location from the
-- action routines. */
-- YYSTYPE yyval;
-+ for (;;)
-+ switch (*++yyp)
-+ {
-+ case '\'':
-+ case ',':
-+ goto do_not_strip_quotes;
-+
-+ case '\\':
-+ if (*++yyp != '\\')
-+ goto do_not_strip_quotes;
-+ /* Fall through. */
-+ default:
-+ yyr += *yyp;
-+ break;
-
-+ case '"':
-+ return yyr;
-+ }
-+ do_not_strip_quotes: ;
-+ }
-
-- /* The number of symbols on the RHS of the reduced rule.
-- Keep to zero when no symbol should be popped. */
-- int yylen = 0;
-+ return yystr;
-+ }
-
-- YYDPRINTF ((stderr, "Starting parse\n"));
-+#endif
-
-- yystate = 0;
-- yyerrstatus = 0;
-- yynerrs = 0;
-- yychar = YYEMPTY; /* Cause a token to be read. */
-+ /// Build a parser object.
-+ Parser::Parser (QMake::Lexer* lexer_yyarg, QValueStack<ProjectAST*>& projects_yyarg, int depth_yyarg)
-+ : yydebug_ (false),
-+ yycdebug_ (&std::cerr),
-+ lexer (lexer_yyarg),
-+ projects (projects_yyarg),
-+ depth (depth_yyarg)
-+ {
-+ }
-+
-+ Parser::~Parser ()
-+ {
-+ }
-
-- /* Initialize stack pointers.
-- Waste one element of value and location stack
-- so that they stay on the same level as the state stack.
-- The wasted elements are never initialized. */
-+#if YYDEBUG
-+ /*--------------------------------.
-+ | Print this symbol on YYOUTPUT. |
-+ `--------------------------------*/
-+
-+ inline void
-+ Parser::yy_symbol_value_print_ (int yytype,
-+ const semantic_type* yyvaluep, const location_type* yylocationp)
-+ {
-+ YYUSE (yylocationp);
-+ YYUSE (yyvaluep);
-+ switch (yytype)
-+ {
-+ default:
-+ break;
-+ }
-+ }
-
-- yyssp = yyss;
-- yyvsp = yyvs;
-
-- goto yysetstate;
-+ void
-+ Parser::yy_symbol_print_ (int yytype,
-+ const semantic_type* yyvaluep, const location_type* yylocationp)
-+ {
-+ *yycdebug_ << (yytype < yyntokens_ ? "token" : "nterm")
-+ << ' ' << yytname_[yytype] << " ("
-+ << *yylocationp << ": ";
-+ yy_symbol_value_print_ (yytype, yyvaluep, yylocationp);
-+ *yycdebug_ << ')';
-+ }
-+#endif /* ! YYDEBUG */
-+
-+ void
-+ Parser::yydestruct_ (const char* yymsg,
-+ int yytype, semantic_type* yyvaluep, location_type* yylocationp)
-+ {
-+ YYUSE (yylocationp);
-+ YYUSE (yymsg);
-+ YYUSE (yyvaluep);
-
--/*------------------------------------------------------------.
--| yynewstate -- Push a new state, which is found in yystate. |
--`------------------------------------------------------------*/
-- yynewstate:
-- /* In all cases, when you get here, the value and location stacks
-- have just been pushed. So pushing a state here evens the stacks. */
-- yyssp++;
-+ YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
-
-- yysetstate:
-- *yyssp = yystate;
-+ switch (yytype)
-+ {
-+
-+ default:
-+ break;
-+ }
-+ }
-
-- if (yyss + yystacksize - 1 <= yyssp)
-- {
-- /* Get the current used size of the three stacks, in elements. */
-- YYSIZE_T yysize = yyssp - yyss + 1;
-+ void
-+ Parser::yypop_ (unsigned int n)
-+ {
-+ yystate_stack_.pop (n);
-+ yysemantic_stack_.pop (n);
-+ yylocation_stack_.pop (n);
-+ }
-+
-+ std::ostream&
-+ Parser::debug_stream () const
-+ {
-+ return *yycdebug_;
-+ }
-+
-+ void
-+ Parser::set_debug_stream (std::ostream& o)
-+ {
-+ yycdebug_ = &o;
-+ }
-+
-+
-+ Parser::debug_level_type
-+ Parser::debug_level () const
-+ {
-+ return yydebug_;
-+ }
-+
-+ void
-+ Parser::set_debug_level (debug_level_type l)
-+ {
-+ yydebug_ = l;
-+ }
-+
-+
-+ int
-+ Parser::parse ()
-+ {
-+ /// Look-ahead and look-ahead in internal form.
-+ int yychar = yyempty_;
-+ int yytoken = 0;
-+
-+ /* State. */
-+ int yyn;
-+ int yylen = 0;
-+ int yystate = 0;
-+
-+ /* Error handling. */
-+ int yynerrs_ = 0;
-+ int yyerrstatus_ = 0;
-+
-+ /// Semantic value of the look-ahead.
-+ semantic_type yylval;
-+ /// Location of the look-ahead.
-+ location_type yylloc;
-+ /// The locations where the error started and ended.
-+ location yyerror_range[2];
-+
-+ /// $$.
-+ semantic_type yyval;
-+ /// @$.
-+ location_type yyloc;
-+
-+ int yyresult;
-+
-+ YYCDEBUG << "Starting parse" << std::endl;
-+
-+
-+ /* Initialize the stacks. The initial state will be pushed in
-+ yynewstate, since the latter expects the semantical and the
-+ location values to have been already stored, initialize these
-+ stacks with a primary value. */
-+ yystate_stack_ = state_stack_type (0);
-+ yysemantic_stack_ = semantic_stack_type (0);
-+ yylocation_stack_ = location_stack_type (0);
-+ yysemantic_stack_.push (yylval);
-+ yylocation_stack_.push (yylloc);
-+
-+ /* New state. */
-+ yynewstate:
-+ yystate_stack_.push (yystate);
-+ YYCDEBUG << "Entering state " << yystate << std::endl;
-+ goto yybackup;
-+
-+ /* Backup. */
-+ yybackup:
-+
-+ /* Try to take a decision without look-ahead. */
-+ yyn = yypact_[yystate];
-+ if (yyn == yypact_ninf_)
-+ goto yydefault;
-
--#ifdef yyoverflow
-+ /* Read a look-ahead token. */
-+ if (yychar == yyempty_)
- {
-- /* Give user a chance to reallocate the stack. Use copies of
-- these so that the &'s don't force the real ones into
-- memory. */
-- YYSTYPE *yyvs1 = yyvs;
-- yytype_int16 *yyss1 = yyss;
--
--
-- /* Each stack pointer address is followed by the size of the
-- data in use in that stack, in bytes. This used to be a
-- conditional around just the two extra args, but that might
-- be undefined if yyoverflow is a macro. */
-- yyoverflow (YY_("memory exhausted"),
-- &yyss1, yysize * sizeof (*yyssp),
-- &yyvs1, yysize * sizeof (*yyvsp),
-+ YYCDEBUG << "Reading a token: ";
-+ yychar = yylex (&yylval, lexer);
-+ }
-
-- &yystacksize);
-
-- yyss = yyss1;
-- yyvs = yyvs1;
-+ /* Convert token to internal form. */
-+ if (yychar <= yyeof_)
-+ {
-+ yychar = yytoken = yyeof_;
-+ YYCDEBUG << "Now at end of input." << std::endl;
- }
--#else /* no yyoverflow */
--# ifndef YYSTACK_RELOCATE
-- goto yyexhaustedlab;
--# else
-- /* Extend the stack our own way. */
-- if (YYMAXDEPTH <= yystacksize)
-- goto yyexhaustedlab;
-- yystacksize *= 2;
-- if (YYMAXDEPTH < yystacksize)
-- yystacksize = YYMAXDEPTH;
--
-+ else
- {
-- yytype_int16 *yyss1 = yyss;
-- union yyalloc *yyptr =
-- (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
-- if (! yyptr)
-- goto yyexhaustedlab;
-- YYSTACK_RELOCATE (yyss);
-- YYSTACK_RELOCATE (yyvs);
--
--# undef YYSTACK_RELOCATE
-- if (yyss1 != yyssa)
-- YYSTACK_FREE (yyss1);
-+ yytoken = yytranslate_ (yychar);
-+ YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
- }
--# endif
--#endif /* no yyoverflow */
--
-- yyssp = yyss + yysize - 1;
-- yyvsp = yyvs + yysize - 1;
--
--
-- YYDPRINTF ((stderr, "Stack size increased to %lu\n",
-- (unsigned long int) yystacksize));
--
-- if (yyss + yystacksize - 1 <= yyssp)
-- YYABORT;
-- }
--
-- YYDPRINTF ((stderr, "Entering state %d\n", yystate));
--
-- goto yybackup;
--
--/*-----------.
--| yybackup. |
--`-----------*/
--yybackup:
-
-- /* Do appropriate processing given the current state. Read a
-- look-ahead token if we need one and don't already have one. */
--
-- /* First try to decide what to do without reference to look-ahead token. */
-- yyn = yypact[yystate];
-- if (yyn == YYPACT_NINF)
-- goto yydefault;
--
-- /* Not known => get a look-ahead token if don't already have one. */
--
-- /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
-- if (yychar == YYEMPTY)
-- {
-- YYDPRINTF ((stderr, "Reading a token: "));
-- yychar = YYLEX;
-- }
--
-- if (yychar <= YYEOF)
-- {
-- yychar = yytoken = YYEOF;
-- YYDPRINTF ((stderr, "Now at end of input.\n"));
-- }
-- else
-- {
-- yytoken = YYTRANSLATE (yychar);
-- YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
-- }
--
-- /* If the proper action on seeing token YYTOKEN is to reduce or to
-- detect an error, take that action. */
-- yyn += yytoken;
-- if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
-- goto yydefault;
-- yyn = yytable[yyn];
-- if (yyn <= 0)
-- {
-- if (yyn == 0 || yyn == YYTABLE_NINF)
-+ /* If the proper action on seeing token YYTOKEN is to reduce or to
-+ detect an error, take that action. */
-+ yyn += yytoken;
-+ if (yyn < 0 || yylast_ < yyn || yycheck_[yyn] != yytoken)
-+ goto yydefault;
-+
-+ /* Reduce or error. */
-+ yyn = yytable_[yyn];
-+ if (yyn <= 0)
-+ {
-+ if (yyn == 0 || yyn == yytable_ninf_)
- goto yyerrlab;
-- yyn = -yyn;
-- goto yyreduce;
-- }
--
-- if (yyn == YYFINAL)
-- YYACCEPT;
--
-- /* Count tokens shifted since error; after three, turn off error
-- status. */
-- if (yyerrstatus)
-- yyerrstatus--;
--
-- /* Shift the look-ahead token. */
-- YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
--
-- /* Discard the shifted token unless it is eof. */
-- if (yychar != YYEOF)
-- yychar = YYEMPTY;
--
-- yystate = yyn;
-- *++yyvsp = yylval;
--
-- goto yynewstate;
--
--
--/*-----------------------------------------------------------.
--| yydefault -- do the default action for the current state. |
--`-----------------------------------------------------------*/
--yydefault:
-- yyn = yydefact[yystate];
-- if (yyn == 0)
-- goto yyerrlab;
-- goto yyreduce;
--
--
--/*-----------------------------.
--| yyreduce -- Do a reduction. |
--`-----------------------------*/
--yyreduce:
-- /* yyn is the number of a rule to reduce with. */
-- yylen = yyr2[yyn];
--
-- /* If YYLEN is nonzero, implement the default value of the action:
-- `$$ = $1'.
--
-- Otherwise, the following line sets YYVAL to garbage.
-- This behavior is undocumented and Bison
-- users should not rely upon it. Assigning to YYVAL
-- unconditionally makes the parser a bit smaller, and it avoids a
-- GCC warning that YYVAL may be used uninitialized. */
-- yyval = yyvsp[1-yylen];
-+ yyn = -yyn;
-+ goto yyreduce;
-+ }
-
-+ /* Accept? */
-+ if (yyn == yyfinal_)
-+ goto yyacceptlab;
-+
-+ /* Shift the look-ahead token. */
-+ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
-+
-+ /* Discard the token being shifted unless it is eof. */
-+ if (yychar != yyeof_)
-+ yychar = yyempty_;
-+
-+ yysemantic_stack_.push (yylval);
-+ yylocation_stack_.push (yylloc);
-+
-+ /* Count tokens shifted since error; after three, turn off error
-+ status. */
-+ if (yyerrstatus_)
-+ --yyerrstatus_;
-+
-+ yystate = yyn;
-+ goto yynewstate;
-+
-+ /*-----------------------------------------------------------.
-+ | yydefault -- do the default action for the current state. |
-+ `-----------------------------------------------------------*/
-+ yydefault:
-+ yyn = yydefact_[yystate];
-+ if (yyn == 0)
-+ goto yyerrlab;
-+ goto yyreduce;
-+
-+ /*-----------------------------.
-+ | yyreduce -- Do a reduction. |
-+ `-----------------------------*/
-+ yyreduce:
-+ yylen = yyr2_[yyn];
-+ /* If YYLEN is nonzero, implement the default value of the action:
-+ `$$ = $1'. Otherwise, use the top of the stack.
-+
-+ Otherwise, the following line sets YYVAL to garbage.
-+ This behavior is undocumented and Bison
-+ users should not rely upon it. */
-+ if (yylen)
-+ yyval = yysemantic_stack_[yylen - 1];
-+ else
-+ yyval = yysemantic_stack_[0];
-
-- YY_REDUCE_PRINT (yyn);
-- switch (yyn)
- {
-- case 2:
--#line 136 "qmake.yy"
-+ slice<location_type, location_stack_type> slice (yylocation_stack_, yylen);
-+ YYLLOC_DEFAULT (yyloc, slice, yylen);
-+ }
-+ YY_REDUCE_PRINT (yyn);
-+ switch (yyn)
-+ {
-+ case 2:
-+#line 147 "qmake.yy"
- {
- ProjectAST *projectAST = new ProjectAST();
- projects.push(projectAST);
-@@ -1510,73 +396,73 @@
- break;
-
- case 4:
--#line 144 "qmake.yy"
-+#line 155 "qmake.yy"
- {
-- projects.top()->addChildAST((yyvsp[(2) - (2)].node));
-- (yyvsp[(2) - (2)].node)->setDepth(depth);
-+ projects.top()->addChildAST((yysemantic_stack_[(2) - (2)].node));
-+ (yysemantic_stack_[(2) - (2)].node)->setDepth(depth);
- ;}
- break;
-
- case 6:
--#line 152 "qmake.yy"
-+#line 163 "qmake.yy"
- {
-- (yyval.node) = (yyvsp[(1) - (1)].node);
-+ (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
- ;}
- break;
-
- case 7:
--#line 156 "qmake.yy"
-+#line 167 "qmake.yy"
- {
-- (yyval.node) = (yyvsp[(1) - (1)].node);
-+ (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
- ;}
- break;
-
- case 8:
--#line 160 "qmake.yy"
-+#line 171 "qmake.yy"
- {
-- (yyval.node) = (yyvsp[(1) - (1)].node);
-+ (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
- ;}
- break;
-
- case 9:
--#line 164 "qmake.yy"
-+#line 175 "qmake.yy"
- {
-- (yyval.node) = (yyvsp[(1) - (1)].node);
-+ (yyval.node) = (yysemantic_stack_[(1) - (1)].node);
- ;}
- break;
-
- case 10:
--#line 168 "qmake.yy"
-+#line 179 "qmake.yy"
- {
- (yyval.node) = new NewLineAST();
- ;}
- break;
-
- case 11:
--#line 174 "qmake.yy"
-+#line 185 "qmake.yy"
- {
- AssignmentAST *node = new AssignmentAST();
-- node->scopedID = (yyvsp[(1) - (3)].value);
-- node->op = (yyvsp[(2) - (3)].value);
-- node->values = (yyvsp[(3) - (3)].values);
-- node->indent = (yyvsp[(3) - (3)].indent);
-- node->commentnode = (yyvsp[(3) - (3)].node);
-+ node->scopedID = (yysemantic_stack_[(3) - (1)].value);
-+ node->op = (yysemantic_stack_[(3) - (2)].value);
-+ node->values = (yysemantic_stack_[(3) - (3)].values);
-+ node->indent = (yysemantic_stack_[(3) - (3)].indent);
-+ node->commentnode = (yysemantic_stack_[(3) - (3)].node);
- (yyval.node) = node;
- ;}
- break;
-
- case 12:
--#line 186 "qmake.yy"
-+#line 197 "qmake.yy"
- {
-- (yyval.values) += (yyvsp[(2) - (3)].values);
-- if( (yyvsp[(2) - (3)].indent) != "" && (yyval.indent) == "" )
-- (yyval.indent) = (yyvsp[(2) - (3)].indent);
-- (yyval.node) = (yyvsp[(3) - (3)].node);
-+ (yyval.values) += (yysemantic_stack_[(3) - (2)].values);
-+ if( (yysemantic_stack_[(3) - (2)].indent) != "" && (yyval.indent) == "" )
-+ (yyval.indent) = (yysemantic_stack_[(3) - (2)].indent);
-+ (yyval.node) = (yysemantic_stack_[(3) - (3)].node);
- ;}
- break;
-
- case 13:
--#line 193 "qmake.yy"
-+#line 204 "qmake.yy"
- {
- (yyval.values).clear();
- (yyval.indent) = "";
-@@ -1585,77 +471,77 @@
- break;
-
- case 14:
--#line 200 "qmake.yy"
-- { (yyval.values).append( (yyvsp[(2) - (2)].value) ); ;}
-+#line 211 "qmake.yy"
-+ { (yyval.values).append( (yysemantic_stack_[(2) - (2)].value) ); ;}
- break;
-
- case 15:
--#line 201 "qmake.yy"
-- { (yyval.values).append( (yyvsp[(1) - (1)].value) ); ;}
-+#line 212 "qmake.yy"
-+ { (yyval.values).append( (yysemantic_stack_[(1) - (1)].value) ); ;}
- break;
-
- case 16:
--#line 202 "qmake.yy"
-+#line 213 "qmake.yy"
- { (yyval.values).append("\\\n"); ;}
- break;
-
- case 17:
--#line 203 "qmake.yy"
-+#line 214 "qmake.yy"
- { (yyval.values).append("\n"); ;}
- break;
-
- case 18:
--#line 204 "qmake.yy"
-- { (yyval.values).append((yyvsp[(1) - (1)].value)); ;}
-+#line 215 "qmake.yy"
-+ { (yyval.values).append((yysemantic_stack_[(1) - (1)].value)); ;}
- break;
-
- case 19:
--#line 206 "qmake.yy"
-+#line 217 "qmake.yy"
- {
-- (yyval.values).append((yyvsp[(1) - (1)].value));
-- if( (yyval.indent) == "" && (yyvsp[(1) - (1)].value) != "" )
-- (yyval.indent) = (yyvsp[(1) - (1)].value);
-+ (yyval.values).append((yysemantic_stack_[(1) - (1)].value));
-+ if( (yyval.indent) == "" && (yysemantic_stack_[(1) - (1)].value) != "" )
-+ (yyval.indent) = (yysemantic_stack_[(1) - (1)].value);
- ;}
- break;
-
- case 22:
--#line 216 "qmake.yy"
-+#line 227 "qmake.yy"
- {
- CommentAST* node = new CommentAST();
-- node->comment = (yyvsp[(1) - (1)].value) + "\n";
-+ node->comment = (yysemantic_stack_[(1) - (1)].value) + "\n";
- (yyval.node) = node;
- ;}
- break;
-
- case 23:
--#line 222 "qmake.yy"
-+#line 233 "qmake.yy"
- {
- (yyval.node) = 0;
- ;}
- break;
-
- case 24:
--#line 227 "qmake.yy"
-- { (yyval.value) = (yyvsp[(1) - (1)].value); ;}
-+#line 238 "qmake.yy"
-+ { (yyval.value) = (yysemantic_stack_[(1) - (1)].value); ;}
- break;
-
- case 25:
--#line 228 "qmake.yy"
-- { (yyval.value) = (yyvsp[(1) - (1)].value); ;}
-+#line 239 "qmake.yy"
-+ { (yyval.value) = (yysemantic_stack_[(1) - (1)].value); ;}
- break;
-
- case 31:
--#line 235 "qmake.yy"
-+#line 246 "qmake.yy"
- {
- ProjectAST *projectAST = new ProjectAST(ProjectAST::Scope);
- projects.push(projectAST);
-- projects.top()->scopedID = (yyvsp[(1) - (1)].value);
-+ projects.top()->scopedID = (yysemantic_stack_[(1) - (1)].value);
- depth++;
- ;}
- break;
-
- case 32:
--#line 242 "qmake.yy"
-+#line 253 "qmake.yy"
- {
- (yyval.node) = projects.pop();
- depth--;
-@@ -1663,19 +549,19 @@
- break;
-
- case 33:
--#line 249 "qmake.yy"
-+#line 260 "qmake.yy"
- {
- ProjectAST *projectAST = new ProjectAST(ProjectAST::FunctionScope);
- projects.push(projectAST);
-- projects.top()->scopedID = (yyvsp[(1) - (4)].value);
-- projects.top()->args = (yyvsp[(3) - (4)].value);
-+ projects.top()->scopedID = (yysemantic_stack_[(4) - (1)].value);
-+ projects.top()->args = (yysemantic_stack_[(4) - (3)].value);
- depth++;
-
- //qWarning("%s", $<value>1.ascii());
-- if ((yyvsp[(1) - (4)].value).contains("include"))
-+ if ((yysemantic_stack_[(4) - (1)].value).contains("include"))
- {
- IncludeAST *includeAST = new IncludeAST();
-- includeAST->projectName = (yyvsp[(3) - (4)].value);
-+ includeAST->projectName = (yysemantic_stack_[(4) - (3)].value);
- projects.top()->addChildAST(includeAST);
- includeAST->setDepth(depth);
- }
-@@ -1683,7 +569,7 @@
- break;
-
- case 34:
--#line 267 "qmake.yy"
-+#line 278 "qmake.yy"
- {
- (yyval.node) = projects.pop();
- depth--;
-@@ -1691,25 +577,25 @@
- break;
-
- case 35:
--#line 273 "qmake.yy"
-- { (yyval.value) = (yyvsp[(1) - (1)].value); ;}
-+#line 284 "qmake.yy"
-+ { (yyval.value) = (yysemantic_stack_[(1) - (1)].value); ;}
- break;
-
- case 36:
--#line 274 "qmake.yy"
-+#line 285 "qmake.yy"
- { (yyval.value) = ""; ;}
- break;
-
- case 38:
--#line 279 "qmake.yy"
-+#line 290 "qmake.yy"
- {
-- projects.top()->addChildAST((yyvsp[(2) - (2)].node));
-- (yyvsp[(2) - (2)].node)->setDepth(depth);
-+ projects.top()->addChildAST((yysemantic_stack_[(2) - (2)].node));
-+ (yysemantic_stack_[(2) - (2)].node)->setDepth(depth);
- ;}
- break;
-
- case 40:
--#line 287 "qmake.yy"
-+#line 298 "qmake.yy"
- {
- ProjectAST *projectAST = new ProjectAST(ProjectAST::FunctionScope);
- projects.push(projectAST);
-@@ -1720,7 +606,7 @@
- break;
-
- case 41:
--#line 295 "qmake.yy"
-+#line 306 "qmake.yy"
- {
- (yyval.node) = projects.pop();
- depth--;
-@@ -1728,239 +614,499 @@
- break;
-
- case 42:
--#line 300 "qmake.yy"
-+#line 311 "qmake.yy"
- {
- (yyval.node) = new ProjectAST();
- ;}
- break;
-
- case 43:
--#line 306 "qmake.yy"
-+#line 317 "qmake.yy"
- {
- CommentAST *node = new CommentAST();
-- node->comment = (yyvsp[(1) - (2)].value) + "\n";
-+ node->comment = (yysemantic_stack_[(2) - (1)].value) + "\n";
- (yyval.node) = node;
- ;}
- break;
-
-
--/* Line 1267 of yacc.c. */
--#line 1749 "qmake_yacc.cpp"
-- default: break;
-- }
-- YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
--
-- YYPOPSTACK (yylen);
-- yylen = 0;
-- YY_STACK_PRINT (yyss, yyssp);
--
-- *++yyvsp = yyval;
--
--
-- /* Now `shift' the result of the reduction. Determine what state
-- that goes to, based on the state we popped back to and the rule
-- number reduced by. */
--
-- yyn = yyr1[yyn];
--
-- yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
-- if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
-- yystate = yytable[yystate];
-- else
-- yystate = yydefgoto[yyn - YYNTOKENS];
--
-- goto yynewstate;
-+ /* Line 675 of lalr1.cc. */
-+#line 635 "qmake_yacc.cpp"
-+ default: break;
-+ }
-+ YY_SYMBOL_PRINT ("-> $$ =", yyr1_[yyn], &yyval, &yyloc);
-
-+ yypop_ (yylen);
-+ yylen = 0;
-+ YY_STACK_PRINT ();
-+
-+ yysemantic_stack_.push (yyval);
-+ yylocation_stack_.push (yyloc);
-+
-+ /* Shift the result of the reduction. */
-+ yyn = yyr1_[yyn];
-+ yystate = yypgoto_[yyn - yyntokens_] + yystate_stack_[0];
-+ if (0 <= yystate && yystate <= yylast_
-+ && yycheck_[yystate] == yystate_stack_[0])
-+ yystate = yytable_[yystate];
-+ else
-+ yystate = yydefgoto_[yyn - yyntokens_];
-+ goto yynewstate;
-+
-+ /*------------------------------------.
-+ | yyerrlab -- here on detecting error |
-+ `------------------------------------*/
-+ yyerrlab:
-+ /* If not already recovering from an error, report this error. */
-+ if (!yyerrstatus_)
-+ {
-+ ++yynerrs_;
-+ error (yylloc, yysyntax_error_ (yystate));
-+ }
-
--/*------------------------------------.
--| yyerrlab -- here on detecting error |
--`------------------------------------*/
--yyerrlab:
-- /* If not already recovering from an error, report this error. */
-- if (!yyerrstatus)
-- {
-- ++yynerrs;
--#if ! YYERROR_VERBOSE
-- yyerror (YY_("syntax error"));
--#else
-+ yyerror_range[0] = yylloc;
-+ if (yyerrstatus_ == 3)
- {
-- YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
-- if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
-- {
-- YYSIZE_T yyalloc = 2 * yysize;
-- if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
-- yyalloc = YYSTACK_ALLOC_MAXIMUM;
-- if (yymsg != yymsgbuf)
-- YYSTACK_FREE (yymsg);
-- yymsg = (char *) YYSTACK_ALLOC (yyalloc);
-- if (yymsg)
-- yymsg_alloc = yyalloc;
-- else
-- {
-- yymsg = yymsgbuf;
-- yymsg_alloc = sizeof yymsgbuf;
-- }
-- }
-+ /* If just tried and failed to reuse look-ahead token after an
-+ error, discard it. */
-
-- if (0 < yysize && yysize <= yymsg_alloc)
-+ if (yychar <= yyeof_)
- {
-- (void) yysyntax_error (yymsg, yystate, yychar);
-- yyerror (yymsg);
-+ /* Return failure if at end of input. */
-+ if (yychar == yyeof_)
-+ YYABORT;
- }
- else
- {
-- yyerror (YY_("syntax error"));
-- if (yysize != 0)
-- goto yyexhaustedlab;
-+ yydestruct_ ("Error: discarding", yytoken, &yylval, &yylloc);
-+ yychar = yyempty_;
- }
- }
--#endif
-- }
--
--
--
-- if (yyerrstatus == 3)
-- {
-- /* If just tried and failed to reuse look-ahead token after an
-- error, discard it. */
--
-- if (yychar <= YYEOF)
-- {
-- /* Return failure if at end of input. */
-- if (yychar == YYEOF)
-- YYABORT;
-- }
-- else
-- {
-- yydestruct ("Error: discarding",
-- yytoken, &yylval);
-- yychar = YYEMPTY;
-- }
-- }
-
-- /* Else will try to reuse look-ahead token after shifting the error
-- token. */
-- goto yyerrlab1;
--
--
--/*---------------------------------------------------.
--| yyerrorlab -- error raised explicitly by YYERROR. |
--`---------------------------------------------------*/
--yyerrorlab:
--
-- /* Pacify compilers like GCC when the user code never invokes
-- YYERROR and the label yyerrorlab therefore never appears in user
-- code. */
-- if (/*CONSTCOND*/ 0)
-- goto yyerrorlab;
--
-- /* Do not reclaim the symbols of the rule which action triggered
-- this YYERROR. */
-- YYPOPSTACK (yylen);
-- yylen = 0;
-- YY_STACK_PRINT (yyss, yyssp);
-- yystate = *yyssp;
-- goto yyerrlab1;
--
--
--/*-------------------------------------------------------------.
--| yyerrlab1 -- common code for both syntax error and YYERROR. |
--`-------------------------------------------------------------*/
--yyerrlab1:
-- yyerrstatus = 3; /* Each real token shifted decrements this. */
-+ /* Else will try to reuse look-ahead token after shifting the error
-+ token. */
-+ goto yyerrlab1;
-+
-+
-+ /*---------------------------------------------------.
-+ | yyerrorlab -- error raised explicitly by YYERROR. |
-+ `---------------------------------------------------*/
-+ yyerrorlab:
-+
-+ /* Pacify compilers like GCC when the user code never invokes
-+ YYERROR and the label yyerrorlab therefore never appears in user
-+ code. */
-+ if (false)
-+ goto yyerrorlab;
-+
-+ yyerror_range[0] = yylocation_stack_[yylen - 1];
-+ /* Do not reclaim the symbols of the rule which action triggered
-+ this YYERROR. */
-+ yypop_ (yylen);
-+ yylen = 0;
-+ yystate = yystate_stack_[0];
-+ goto yyerrlab1;
-+
-+ /*-------------------------------------------------------------.
-+ | yyerrlab1 -- common code for both syntax error and YYERROR. |
-+ `-------------------------------------------------------------*/
-+ yyerrlab1:
-+ yyerrstatus_ = 3; /* Each real token shifted decrements this. */
-
-- for (;;)
-- {
-- yyn = yypact[yystate];
-- if (yyn != YYPACT_NINF)
-+ for (;;)
-+ {
-+ yyn = yypact_[yystate];
-+ if (yyn != yypact_ninf_)
- {
-- yyn += YYTERROR;
-- if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
-+ yyn += yyterror_;
-+ if (0 <= yyn && yyn <= yylast_ && yycheck_[yyn] == yyterror_)
- {
-- yyn = yytable[yyn];
-+ yyn = yytable_[yyn];
- if (0 < yyn)
- break;
- }
- }
-
-- /* Pop the current state because it cannot handle the error token. */
-- if (yyssp == yyss)
-+ /* Pop the current state because it cannot handle the error token. */
-+ if (yystate_stack_.height () == 1)
- YYABORT;
-
-+ yyerror_range[0] = yylocation_stack_[0];
-+ yydestruct_ ("Error: popping",
-+ yystos_[yystate],
-+ &yysemantic_stack_[0], &yylocation_stack_[0]);
-+ yypop_ ();
-+ yystate = yystate_stack_[0];
-+ YY_STACK_PRINT ();
-+ }
-+
-+ if (yyn == yyfinal_)
-+ goto yyacceptlab;
-
-- yydestruct ("Error: popping",
-- yystos[yystate], yyvsp);
-- YYPOPSTACK (1);
-- yystate = *yyssp;
-- YY_STACK_PRINT (yyss, yyssp);
-- }
-+ yyerror_range[1] = yylloc;
-+ // Using YYLLOC is tempting, but would change the location of
-+ // the look-ahead. YYLOC is available though.
-+ YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2);
-+ yysemantic_stack_.push (yylval);
-+ yylocation_stack_.push (yyloc);
-+
-+ /* Shift the error token. */
-+ YY_SYMBOL_PRINT ("Shifting", yystos_[yyn],
-+ &yysemantic_stack_[0], &yylocation_stack_[0]);
-+
-+ yystate = yyn;
-+ goto yynewstate;
-+
-+ /* Accept. */
-+ yyacceptlab:
-+ yyresult = 0;
-+ goto yyreturn;
-+
-+ /* Abort. */
-+ yyabortlab:
-+ yyresult = 1;
-+ goto yyreturn;
-+
-+ yyreturn:
-+ if (yychar != yyeof_ && yychar != yyempty_)
-+ yydestruct_ ("Cleanup: discarding lookahead", yytoken, &yylval, &yylloc);
-+
-+ /* Do not reclaim the symbols of the rule which action triggered
-+ this YYABORT or YYACCEPT. */
-+ yypop_ (yylen);
-+ while (yystate_stack_.height () != 1)
-+ {
-+ yydestruct_ ("Cleanup: popping",
-+ yystos_[yystate_stack_[0]],
-+ &yysemantic_stack_[0],
-+ &yylocation_stack_[0]);
-+ yypop_ ();
-+ }
-+
-+ return yyresult;
-+ }
-+
-+ // Generate an error message.
-+ std::string
-+ Parser::yysyntax_error_ (int yystate)
-+ {
-+ std::string res;
-+ YYUSE (yystate);
-+#if YYERROR_VERBOSE
-+ int yyn = yypact_[yystate];
-+ if (yypact_ninf_ < yyn && yyn <= yylast_)
-+ {
-+ /* Start YYX at -YYN if negative to avoid negative indexes in
-+ YYCHECK. */
-+ int yyxbegin = yyn < 0 ? -yyn : 0;
-+
-+ /* Stay within bounds of both yycheck and yytname. */
-+ int yychecklim = yylast_ - yyn + 1;
-+ int yyxend = yychecklim < yyntokens_ ? yychecklim : yyntokens_;
-+ int count = 0;
-+ for (int x = yyxbegin; x < yyxend; ++x)
-+ if (yycheck_[x + yyn] == x && x != yyterror_)
-+ ++count;
-+
-+ // FIXME: This method of building the message is not compatible
-+ // with internationalization. It should work like yacc.c does it.
-+ // That is, first build a string that looks like this:
-+ // "syntax error, unexpected %s or %s or %s"
-+ // Then, invoke YY_ on this string.
-+ // Finally, use the string as a format to output
-+ // yytname_[tok], etc.
-+ // Until this gets fixed, this message appears in English only.
-+ res = "syntax error, unexpected ";
-+ res += yytnamerr_ (yytname_[tok]);
-+ if (count < 5)
-+ {
-+ count = 0;
-+ for (int x = yyxbegin; x < yyxend; ++x)
-+ if (yycheck_[x + yyn] == x && x != yyterror_)
-+ {
-+ res += (!count++) ? ", expecting " : " or ";
-+ res += yytnamerr_ (yytname_[x]);
-+ }
-+ }
-+ }
-+ else
-+#endif
-+ res = YY_("syntax error");
-+ return res;
-+ }
-
-- if (yyn == YYFINAL)
-- YYACCEPT;
-
-- *++yyvsp = yylval;
-+ /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
-+ STATE-NUM. */
-+ const signed char Parser::yypact_ninf_ = -41;
-+ const signed char
-+ Parser::yypact_[] =
-+ {
-+ -41, 1, -41, -41, 5, 18, -41, -9, -41, -41,
-+ -41, -41, -41, -41, -41, -41, -41, -41, -41, -14,
-+ -41, -2, -41, -41, 21, -10, 5, -41, -41, -41,
-+ -41, -41, -41, -41, -41, -41, -41, -41, 7, -41,
-+ -41, 4, -2, -41, -41, -41, -41, 6, 15, -41,
-+ -41, -2, 17, -41
-+ };
-+
-+ /* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
-+ doesn't specify something else to do. Zero means the default is an
-+ error. */
-+ const unsigned char
-+ Parser::yydefact_[] =
-+ {
-+ 2, 0, 5, 1, 3, 31, 44, 0, 4, 6,
-+ 7, 8, 9, 10, 26, 27, 28, 29, 30, 36,
-+ 13, 39, 43, 35, 0, 11, 0, 5, 32, 33,
-+ 21, 17, 16, 20, 25, 24, 19, 18, 23, 15,
-+ 38, 0, 39, 22, 12, 14, 37, 42, 0, 34,
-+ 40, 39, 0, 41
-+ };
-
-+ /* YYPGOTO[NTERM-NUM]. */
-+ const signed char
-+ Parser::yypgoto_[] =
-+ {
-+ -41, -41, -41, 8, 10, -41, -41, -41, -41, -1,
-+ -41, -41, -41, -41, -41, -41, -40, -41, -41, -41,
-+ -41
-+ };
-
-- /* Shift the error token. */
-- YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
-+ /* YYDEFGOTO[NTERM-NUM]. */
-+ const signed char
-+ Parser::yydefgoto_[] =
-+ {
-+ -1, 1, 2, 4, 8, 9, 25, 38, 44, 39,
-+ 20, 10, 21, 11, 42, 24, 28, 49, 51, 12,
-+ 13
-+ };
-
-- yystate = yyn;
-- goto yynewstate;
--
--
--/*-------------------------------------.
--| yyacceptlab -- YYACCEPT comes here. |
--`-------------------------------------*/
--yyacceptlab:
-- yyresult = 0;
-- goto yyreturn;
--
--/*-----------------------------------.
--| yyabortlab -- YYABORT comes here. |
--`-----------------------------------*/
--yyabortlab:
-- yyresult = 1;
-- goto yyreturn;
--
--#ifndef yyoverflow
--/*-------------------------------------------------.
--| yyexhaustedlab -- memory exhaustion comes here. |
--`-------------------------------------------------*/
--yyexhaustedlab:
-- yyerror (YY_("memory exhausted"));
-- yyresult = 2;
-- /* Fall through. */
--#endif
-+ /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
-+ positive, shift that token. If negative, reduce the rule which
-+ number is the opposite. If zero, do what YYDEFACT says. */
-+ const signed char Parser::yytable_ninf_ = -1;
-+ const unsigned char
-+ Parser::yytable_[] =
-+ {
-+ 30, 3, 47, 31, 22, 23, 32, 5, 5, 26,
-+ 33, 52, 34, 35, 36, 37, 27, 6, 6, 7,
-+ 7, 46, 14, 15, 16, 17, 18, 19, 43, 34,
-+ 35, 29, 48, 50, 53, 41, 40, 45
-+ };
-
--yyreturn:
-- if (yychar != YYEOF && yychar != YYEMPTY)
-- yydestruct ("Cleanup: discarding lookahead",
-- yytoken, &yylval);
-- /* Do not reclaim the symbols of the rule which action triggered
-- this YYABORT or YYACCEPT. */
-- YYPOPSTACK (yylen);
-- YY_STACK_PRINT (yyss, yyssp);
-- while (yyssp != yyss)
-- {
-- yydestruct ("Cleanup: popping",
-- yystos[*yyssp], yyvsp);
-- YYPOPSTACK (1);
-- }
--#ifndef yyoverflow
-- if (yyss != yyssa)
-- YYSTACK_FREE (yyss);
-+ /* YYCHECK. */
-+ const unsigned char
-+ Parser::yycheck_[] =
-+ {
-+ 10, 0, 42, 13, 13, 19, 16, 3, 3, 11,
-+ 20, 51, 22, 23, 24, 25, 18, 13, 13, 15,
-+ 15, 17, 4, 5, 6, 7, 8, 9, 21, 22,
-+ 23, 10, 26, 18, 17, 27, 26, 38
-+ };
-+
-+ /* STOS_[STATE-NUM] -- The (internal number of the) accessing
-+ symbol of state STATE-NUM. */
-+ const unsigned char
-+ Parser::yystos_[] =
-+ {
-+ 0, 28, 29, 0, 30, 3, 13, 15, 31, 32,
-+ 38, 40, 46, 47, 4, 5, 6, 7, 8, 9,
-+ 37, 39, 13, 19, 42, 33, 11, 18, 43, 10,
-+ 10, 13, 16, 20, 22, 23, 24, 25, 34, 36,
-+ 31, 30, 41, 21, 35, 36, 17, 43, 26, 44,
-+ 18, 45, 43, 17
-+ };
-+
-+#if YYDEBUG
-+ /* TOKEN_NUMBER_[YYLEX-NUM] -- Internal symbol number corresponding
-+ to YYLEX-NUM. */
-+ const unsigned short int
-+ Parser::yytoken_number_[] =
-+ {
-+ 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
-+ 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
-+ 275, 276, 277, 278, 279, 280, 281
-+ };
- #endif
--#if YYERROR_VERBOSE
-- if (yymsg != yymsgbuf)
-- YYSTACK_FREE (yymsg);
-+
-+ /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
-+ const unsigned char
-+ Parser::yyr1_[] =
-+ {
-+ 0, 27, 29, 28, 30, 30, 31, 31, 31, 31,
-+ 31, 32, 33, 33, 34, 34, 34, 34, 34, 34,
-+ 34, 34, 35, 35, 36, 36, 37, 37, 37, 37,
-+ 37, 39, 38, 41, 40, 42, 42, 43, 43, 43,
-+ 45, 44, 44, 46, 47
-+ };
-+
-+ /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
-+ const unsigned char
-+ Parser::yyr2_[] =
-+ {
-+ 0, 2, 0, 2, 2, 0, 1, 1, 1, 1,
-+ 1, 3, 3, 0, 2, 1, 1, 1, 1, 1,
-+ 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
-+ 1, 0, 3, 0, 7, 1, 0, 3, 2, 0,
-+ 0, 5, 0, 2, 1
-+ };
-+
-+#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
-+ /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
-+ First, the terminals, then, starting at \a yyntokens_, nonterminals. */
-+ const char*
-+ const Parser::yytname_[] =
-+ {
-+ "$end", "error", "$undefined", "ID_SIMPLE", "EQ", "PLUSEQ", "MINUSEQ",
-+ "STAREQ", "TILDEEQ", "LBRACE", "RBRACE", "COLON", "NUMSIGN", "NEWLINE",
-+ "NUMBER", "COMMENT", "CONT", "RCURLY", "LCURLY", "ID_ARGS",
-+ "LIST_COMMENT", "LIST_COMMENT_WITHOUT_NEWLINE", "QUOTED_VARIABLE_VALUE",
-+ "VARIABLE_VALUE", "INDENT", "LIST_WS", "\"else\"", "$accept", "project",
-+ "@1", "statements", "statement", "variable_assignment",
-+ "multiline_values", "line_body", "opt_comment", "variable_value",
-+ "operator", "scope", "@2", "function_call", "@3", "function_args",
-+ "scope_body", "else_statement", "@4", "comment", "emptyline", 0
-+ };
- #endif
-- /* Make sure YYID is used. */
-- return YYID (yyresult);
--}
-
-+#if YYDEBUG
-+ /* YYRHS -- A `-1'-separated list of the rules' RHS. */
-+ const Parser::rhs_number_type
-+ Parser::yyrhs_[] =
-+ {
-+ 28, 0, -1, -1, 29, 30, -1, 30, 31, -1,
-+ -1, 32, -1, 38, -1, 40, -1, 46, -1, 47,
-+ -1, 3, 37, 33, -1, 33, 34, 35, -1, -1,
-+ 34, 36, -1, 36, -1, 16, -1, 13, -1, 25,
-+ -1, 24, -1, 20, -1, 10, -1, 21, -1, -1,
-+ 23, -1, 22, -1, 4, -1, 5, -1, 6, -1,
-+ 7, -1, 8, -1, -1, 3, 39, 43, -1, -1,
-+ 3, 9, 42, 10, 41, 43, 44, -1, 19, -1,
-+ -1, 18, 30, 17, -1, 11, 31, -1, -1, -1,
-+ 26, 18, 45, 43, 17, -1, -1, 15, 13, -1,
-+ 13, -1
-+ };
-+
-+ /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
-+ YYRHS. */
-+ const unsigned char
-+ Parser::yyprhs_[] =
-+ {
-+ 0, 0, 3, 4, 7, 10, 11, 13, 15, 17,
-+ 19, 21, 25, 29, 30, 33, 35, 37, 39, 41,
-+ 43, 45, 47, 49, 50, 52, 54, 56, 58, 60,
-+ 62, 64, 65, 69, 70, 78, 80, 81, 85, 88,
-+ 89, 90, 96, 97, 100
-+ };
-+
-+ /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
-+ const unsigned short int
-+ Parser::yyrline_[] =
-+ {
-+ 0, 147, 147, 147, 154, 159, 162, 166, 170, 174,
-+ 178, 184, 196, 204, 211, 212, 213, 214, 215, 216,
-+ 222, 223, 226, 233, 238, 239, 242, 242, 242, 242,
-+ 242, 246, 245, 260, 259, 284, 285, 288, 289, 294,
-+ 298, 297, 311, 316, 324
-+ };
-+
-+ // Print the state stack on the debug stream.
-+ void
-+ Parser::yystack_print_ ()
-+ {
-+ *yycdebug_ << "Stack now";
-+ for (state_stack_type::const_iterator i = yystate_stack_.begin ();
-+ i != yystate_stack_.end (); ++i)
-+ *yycdebug_ << ' ' << *i;
-+ *yycdebug_ << std::endl;
-+ }
-+
-+ // Report on the debug stream that the rule \a yyrule is going to be reduced.
-+ void
-+ Parser::yy_reduce_print_ (int yyrule)
-+ {
-+ unsigned int yylno = yyrline_[yyrule];
-+ int yynrhs = yyr2_[yyrule];
-+ /* Print the symbols being reduced, and their result. */
-+ *yycdebug_ << "Reducing stack by rule " << yyrule - 1
-+ << " (line " << yylno << "), ";
-+ /* The symbols being reduced. */
-+ for (int yyi = 0; yyi < yynrhs; yyi++)
-+ YY_SYMBOL_PRINT (" $" << yyi + 1 << " =",
-+ yyrhs_[yyprhs_[yyrule] + yyi],
-+ &(yysemantic_stack_[(yynrhs) - (yyi + 1)]),
-+ &(yylocation_stack_[(yynrhs) - (yyi + 1)]));
-+ }
-+#endif // YYDEBUG
-+
-+ /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
-+ Parser::token_number_type
-+ Parser::yytranslate_ (int t)
-+ {
-+ static
-+ const token_number_type
-+ translate_table[] =
-+ {
-+ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-+ 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
-+ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
-+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
-+ 25, 26
-+ };
-+ if ((unsigned int) t <= yyuser_token_number_max_)
-+ return translate_table[t];
-+ else
-+ return yyundef_token_;
-+ }
-+
-+ const int Parser::yyeof_ = 0;
-+ const int Parser::yylast_ = 37;
-+ const int Parser::yynnts_ = 21;
-+ const int Parser::yyempty_ = -2;
-+ const int Parser::yyfinal_ = 3;
-+ const int Parser::yyterror_ = 1;
-+ const int Parser::yyerrcode_ = 256;
-+ const int Parser::yyntokens_ = 27;
-+
-+ const unsigned int Parser::yyuser_token_number_max_ = 281;
-+ const Parser::token_number_type Parser::yyundef_token_ = 2;
-+
-+} // namespace QMake
-+
-+#line 327 "qmake.yy"
-
--#line 316 "qmake.yy"
-
-
--#include "qmake_lex.cpp"
-+namespace QMake
-+{
-+ void Parser::error(const location_type& /*l*/, const std::string& m)
-+ {
-+ std::cerr << m << std::endl;
-+ }
-+}
-
-diff -u --exclude=.svn -Nur kdev_3.4.0.org/buildtools/lib/parsers/qmake/qmake_yacc.h kdev_3.4.0/buildtools/lib/parsers/qmake/qmake_yacc.h
---- buildtools/lib/parsers/qmake/qmake_yacc.h 2007-02-07 21:15:37.000000000 +0100
-+++ buildtools/lib/parsers/qmake/qmake_yacc.h 1970-01-01 01:00:00.000000000 +0100
-@@ -1,103 +0,0 @@
--/* A Bison parser, made by GNU Bison 2.3. */
--
--/* Skeleton interface for Bison's Yacc-like parsers in C
--
-- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
-- Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation; either version 2, or (at your option)
-- any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program; if not, write to the Free Software
-- Foundation, Inc., 51 Franklin Street, Fifth Floor,
-- Boston, MA 02110-1301, USA. */
--
--/* As a special exception, you may create a larger work that contains
-- part or all of the Bison parser skeleton and distribute that work
-- under terms of your choice, so long as that work isn't itself a
-- parser generator using the skeleton or a modified version thereof
-- as a parser skeleton. Alternatively, if you modify or redistribute
-- the parser skeleton itself, you may (at your option) remove this
-- special exception, which will cause the skeleton and the resulting
-- Bison output files to be licensed under the GNU General Public
-- License without this special exception.
--
-- This special exception was added by the Free Software Foundation in
-- version 2.2 of Bison. */
--
--/* Tokens. */
--#ifndef YYTOKENTYPE
--# define YYTOKENTYPE
-- /* Put the tokens into the symbol table, so that GDB and other debuggers
-- know about them. */
-- enum yytokentype {
-- ID_SIMPLE = 258,
-- EQ = 259,
-- PLUSEQ = 260,
-- MINUSQE = 261,
-- STAREQ = 262,
-- TILDEEQ = 263,
-- LBRACE = 264,
-- RBRACE = 265,
-- COLON = 266,
-- NUMSIGN = 267,
-- NEWLINE = 268,
-- NUMBER = 269,
-- COMMENT = 270,
-- CONT = 271,
-- RCURLY = 272,
-- LCURLY = 273,
-- ID_ARGS = 274,
-- LIST_COMMENT = 275,
-- LIST_COMMENT_WITHOUT_NEWLINE = 276,
-- QUOTED_VARIABLE_VALUE = 277,
-- VARIABLE_VALUE = 278,
-- INDENT = 279,
-- LIST_WS = 280
-- };
--#endif
--/* Tokens. */
--#define ID_SIMPLE 258
--#define EQ 259
--#define PLUSEQ 260
--#define MINUSQE 261
--#define STAREQ 262
--#define TILDEEQ 263
--#define LBRACE 264
--#define RBRACE 265
--#define COLON 266
--#define NUMSIGN 267
--#define NEWLINE 268
--#define NUMBER 269
--#define COMMENT 270
--#define CONT 271
--#define RCURLY 272
--#define LCURLY 273
--#define ID_ARGS 274
--#define LIST_COMMENT 275
--#define LIST_COMMENT_WITHOUT_NEWLINE 276
--#define QUOTED_VARIABLE_VALUE 277
--#define VARIABLE_VALUE 278
--#define INDENT 279
--#define LIST_WS 280
--
--
--
--
--#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
--typedef int YYSTYPE;
--# define yystype YYSTYPE /* obsolescent; will be withdrawn */
--# define YYSTYPE_IS_DECLARED 1
--# define YYSTYPE_IS_TRIVIAL 1
--#endif
--
--extern YYSTYPE yylval;
--
-diff -u --exclude=.svn -Nur kdev_3.4.0.org/buildtools/lib/parsers/qmake/qmake_yacc.hpp kdev_3.4.0/buildtools/lib/parsers/qmake/qmake_yacc.hpp
---- buildtools/lib/parsers/qmake/qmake_yacc.hpp 1970-01-01 01:00:00.000000000 +0100
-+++ buildtools/lib/parsers/qmake/qmake_yacc.hpp 2007-02-07 20:35:10.000000000 +0100
-@@ -0,0 +1,421 @@
-+/* A Bison parser, made by GNU Bison 2.3. */
-+
-+/* Skeleton interface for Bison LALR(1) parsers in C++
-+
-+ Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify
-+ it under the terms of the GNU General Public License as published by
-+ the Free Software Foundation; either version 2, or (at your option)
-+ any later version.
-+
-+ This program is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ GNU General Public License for more details.
-+
-+ You should have received a copy of the GNU General Public License
-+ along with this program; if not, write to the Free Software
-+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
-+ Boston, MA 02110-1301, USA. */
-+
-+/* As a special exception, you may create a larger work that contains
-+ part or all of the Bison parser skeleton and distribute that work
-+ under terms of your choice, so long as that work isn't itself a
-+ parser generator using the skeleton or a modified version thereof
-+ as a parser skeleton. Alternatively, if you modify or redistribute
-+ the parser skeleton itself, you may (at your option) remove this
-+ special exception, which will cause the skeleton and the resulting
-+ Bison output files to be licensed under the GNU General Public
-+ License without this special exception.
-+
-+ This special exception was added by the Free Software Foundation in
-+ version 2.2 of Bison. */
-+
-+/* C++ LALR(1) parser skeleton written by Akim Demaille. */
-+
-+#ifndef PARSER_HEADER_H
-+# define PARSER_HEADER_H
-+
-+#include <string>
-+#include <iostream>
-+#include "stack.hh"
-+
-+namespace QMake
-+{
-+ class position;
-+ class location;
-+}
-+
-+/* First part of user declarations. */
-+#line 1 "qmake.yy"
-+
-+/***************************************************************************
-+ * Copyright (C) 2005 by Alexander Dymo *
-+ * adymo@kdevelop.org *
-+ * Copyright (C) 2006 by Andreas Pakulat *
-+ * apaku@gmx.de *
-+ * *
-+ * This program is free software; you can redistribute it and/or modify *
-+ * it under the terms of the GNU Library General Public License as *
-+ * published by the Free Software Foundation; either version 2 of the *
-+ * License, or (at your option) any later version. *
-+ * *
-+ * This program is distributed in the hope that it will be useful, *
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
-+ * GNU General Public License for more details. *
-+ * *
-+ * You should have received a copy of the GNU Library General Public *
-+ * License along with this program; if not, write to the *
-+ * Free Software Foundation, Inc., *
-+ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
-+ ***************************************************************************/
-+
-+/**
-+@file qmake.yy
-+QMake Parser
-+
-+Simple LALR parser which builds the syntax tree (see @ref QMake::AST).
-+
-+@todo Recognize comments after statements like:
-+SOURCES = foo #regognize me
-+
-+@fixme Parser fails on files that do not end with a newline
-+@fixme 1 shift/reduce conflict in "line_body" rule
-+*/
-+
-+#include <qvaluestack.h>
-+#include "qmakeast.h"
-+#include <qregexp.h>
-+
-+#define YYSTYPE_IS_DECLARED
-+
-+namespace QMake
-+{
-+ class Lexer;
-+
-+/**
-+The yylval type.
-+*/
-+struct Result {
-+ Result(): node(0) {}
-+
-+ /**Type of semantic value for simple grammar rules.*/
-+ QString value;
-+ /**Type of semantic value for grammar rules which are parts of AST.*/
-+ AST *node;
-+ /**Type of semantic value for "multiline_values" grammar rule.
-+ Each line of multiline value is stored as a string in the list.
-+
-+ For example we have in .pro file:
-+ @code
-+ SOURCE = foo1.cpp \
-+ foo2.cpp \
-+ foo3.cpp foo4.cpp
-+ @endcode
-+ The string list will be populated with three strings:
-+ <pre>
-+ foo1.cpp
-+ foo2.cpp
-+ foo3.cpp foo4.cpp
-+ </pre>
-+ */
-+ QStringList values;
-+ QString indent;
-+};
-+
-+#define YYSTYPE Result
-+typedef Result YYSTYPE;
-+}
-+
-+extern int QMakelex( QMake::Result* yylval, QMake::Lexer* lexer );
-+
-+/**
-+The stack to store ProjectAST pointers when a new child
-+ProjectAST is created and filled with statements.
-+
-+Parser creates root ProjectAST for a .pro file, pushes it onto the stack and starts
-+adding statements. Each statement is added as a child StatementAST to the ProjectAST
-+currently on the top in the stack.
-+
-+When a scope or function scope statement is parsed, the child ProjectAST is created
-+and pushed onto the stack. Therefore all statements which belong to the scope
-+or function scope are added as childs to their direct parent (scope or function scope).
-+*/
-+//QValueStack<ProjectAST*> projects;
-+
-+/**
-+The current depth of AST node is stored here.
-+AST depth is important to know because automatic indentation can
-+be easily implemented (the parser itself looses all information
-+about indentation).
-+*/
-+// int depth = 0;
-+
-+/*
-+To debug this parser, put the line below into the next bison file section.
-+Don't forget to uncomment "yydebug = 1" line in qmakedriver.cpp.
-+%debug
-+*/
-+
-+
-+/* Line 35 of lalr1.cc. */
-+#line 165 "qmake_yacc.hpp"
-+
-+#include "location.hh"
-+
-+/* Enabling traces. */
-+#ifndef YYDEBUG
-+# define YYDEBUG 0
-+#endif
-+
-+/* Enabling verbose error messages. */
-+#ifdef YYERROR_VERBOSE
-+# undef YYERROR_VERBOSE
-+# define YYERROR_VERBOSE 1
-+#else
-+# define YYERROR_VERBOSE 0
-+#endif
-+
-+/* Enabling the token table. */
-+#ifndef YYTOKEN_TABLE
-+# define YYTOKEN_TABLE 0
-+#endif
-+
-+/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
-+ If N is 0, then set CURRENT to the empty location which ends
-+ the previous symbol: RHS[0] (always defined). */
-+
-+#ifndef YYLLOC_DEFAULT
-+# define YYLLOC_DEFAULT(Current, Rhs, N) \
-+do { \
-+ if (N) \
-+ { \
-+ (Current).begin = (Rhs)[1].begin; \
-+ (Current).end = (Rhs)[N].end; \
-+ } \
-+ else \
-+ { \
-+ (Current).begin = (Current).end = (Rhs)[0].end; \
-+ } \
-+} while (false)
-+#endif
-+
-+namespace QMake
-+{
-+
-+ /// A Bison parser.
-+ class Parser
-+ {
-+ public:
-+ /// Symbol semantic values.
-+#ifndef YYSTYPE
-+ typedef int semantic_type;
-+#else
-+ typedef YYSTYPE semantic_type;
-+#endif
-+ /// Symbol locations.
-+ typedef location location_type;
-+ /// Tokens.
-+ struct token
-+ {
-+ /* Tokens. */
-+ enum yytokentype {
-+ ID_SIMPLE = 258,
-+ EQ = 259,
-+ PLUSEQ = 260,
-+ MINUSEQ = 261,
-+ STAREQ = 262,
-+ TILDEEQ = 263,
-+ LBRACE = 264,
-+ RBRACE = 265,
-+ COLON = 266,
-+ NUMSIGN = 267,
-+ NEWLINE = 268,
-+ NUMBER = 269,
-+ COMMENT = 270,
-+ CONT = 271,
-+ RCURLY = 272,
-+ LCURLY = 273,
-+ ID_ARGS = 274,
-+ LIST_COMMENT = 275,
-+ LIST_COMMENT_WITHOUT_NEWLINE = 276,
-+ QUOTED_VARIABLE_VALUE = 277,
-+ VARIABLE_VALUE = 278,
-+ INDENT = 279,
-+ LIST_WS = 280
-+ };
-+
-+ };
-+ /// Token type.
-+ typedef token::yytokentype token_type;
-+
-+ /// Build a parser object.
-+ Parser (QMake::Lexer* lexer_yyarg, QValueStack<ProjectAST*>& projects_yyarg, int depth_yyarg);
-+ virtual ~Parser ();
-+
-+ /// Parse.
-+ /// \returns 0 iff parsing succeeded.
-+ virtual int parse ();
-+
-+ /// The current debugging stream.
-+ std::ostream& debug_stream () const;
-+ /// Set the current debugging stream.
-+ void set_debug_stream (std::ostream &);
-+
-+ /// Type for debugging levels.
-+ typedef int debug_level_type;
-+ /// The current debugging level.
-+ debug_level_type debug_level () const;
-+ /// Set the current debugging level.
-+ void set_debug_level (debug_level_type l);
-+
-+ private:
-+ /// Report a syntax error.
-+ /// \param loc where the syntax error is found.
-+ /// \param msg a description of the syntax error.
-+ virtual void error (const location_type& loc, const std::string& msg);
-+
-+ /// Generate an error message.
-+ /// \param state the state where the error occurred.
-+ /// \param tok the look-ahead token.
-+ virtual std::string yysyntax_error_ (int yystate);
-+
-+#if YYDEBUG
-+ /// \brief Report a symbol value on the debug stream.
-+ /// \param yytype The token type.
-+ /// \param yyvaluep Its semantic value.
-+ /// \param yylocationp Its location.
-+ virtual void yy_symbol_value_print_ (int yytype,
-+ const semantic_type* yyvaluep,
-+ const location_type* yylocationp);
-+ /// \brief Report a symbol on the debug stream.
-+ /// \param yytype The token type.
-+ /// \param yyvaluep Its semantic value.
-+ /// \param yylocationp Its location.
-+ virtual void yy_symbol_print_ (int yytype,
-+ const semantic_type* yyvaluep,
-+ const location_type* yylocationp);
-+#endif /* ! YYDEBUG */
-+
-+
-+ /// State numbers.
-+ typedef int state_type;
-+ /// State stack type.
-+ typedef stack<state_type> state_stack_type;
-+ /// Semantic value stack type.
-+ typedef stack<semantic_type> semantic_stack_type;
-+ /// location stack type.
-+ typedef stack<location_type> location_stack_type;
-+
-+ /// The state stack.
-+ state_stack_type yystate_stack_;
-+ /// The semantic value stack.
-+ semantic_stack_type yysemantic_stack_;
-+ /// The location stack.
-+ location_stack_type yylocation_stack_;
-+
-+ /// Internal symbol numbers.
-+ typedef unsigned char token_number_type;
-+ /* Tables. */
-+ /// For a state, the index in \a yytable_ of its portion.
-+ static const signed char yypact_[];
-+ static const signed char yypact_ninf_;
-+
-+ /// For a state, default rule to reduce.
-+ /// Unless\a yytable_ specifies something else to do.
-+ /// Zero means the default is an error.
-+ static const unsigned char yydefact_[];
-+
-+ static const signed char yypgoto_[];
-+ static const signed char yydefgoto_[];
-+
-+ /// What to do in a state.
-+ /// \a yytable_[yypact_[s]]: what to do in state \a s.
-+ /// - if positive, shift that token.
-+ /// - if negative, reduce the rule which number is the opposite.
-+ /// - if zero, do what YYDEFACT says.
-+ static const unsigned char yytable_[];
-+ static const signed char yytable_ninf_;
-+
-+ static const unsigned char yycheck_[];
-+
-+ /// For a state, its accessing symbol.
-+ static const unsigned char yystos_[];
-+
-+ /// For a rule, its LHS.
-+ static const unsigned char yyr1_[];
-+ /// For a rule, its RHS length.
-+ static const unsigned char yyr2_[];
-+
-+#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
-+ /// For a symbol, its name in clear.
-+ static const char* const yytname_[];
-+#endif
-+
-+#if YYERROR_VERBOSE
-+ /// Convert the symbol name \a n to a form suitable for a diagnostic.
-+ virtual std::string yytnamerr_ (const char *n);
-+#endif
-+
-+#if YYDEBUG
-+ /// A type to store symbol numbers and -1.
-+ typedef signed char rhs_number_type;
-+ /// A `-1'-separated list of the rules' RHS.
-+ static const rhs_number_type yyrhs_[];
-+ /// For each rule, the index of the first RHS symbol in \a yyrhs_.
-+ static const unsigned char yyprhs_[];
-+ /// For each rule, its source line number.
-+ static const unsigned short int yyrline_[];
-+ /// For each scanner token number, its symbol number.
-+ static const unsigned short int yytoken_number_[];
-+ /// Report on the debug stream that the rule \a r is going to be reduced.
-+ virtual void yy_reduce_print_ (int r);
-+ /// Print the state stack on the debug stream.
-+ virtual void yystack_print_ ();
-+#endif
-+
-+ /// Convert a scanner token number \a t to a symbol number.
-+ token_number_type yytranslate_ (int t);
-+
-+ /// \brief Reclaim the memory associated to a symbol.
-+ /// \param yymsg Why this token is reclaimed.
-+ /// \param yytype The symbol type.
-+ /// \param yyvaluep Its semantic value.
-+ /// \param yylocationp Its location.
-+ inline void yydestruct_ (const char* yymsg,
-+ int yytype,
-+ semantic_type* yyvaluep,
-+ location_type* yylocationp);
-+
-+ /// Pop \a n symbols the three stacks.
-+ inline void yypop_ (unsigned int n = 1);
-+
-+ /* Constants. */
-+ static const int yyeof_;
-+ /* LAST_ -- Last index in TABLE_. */
-+ static const int yylast_;
-+ static const int yynnts_;
-+ static const int yyempty_;
-+ static const int yyfinal_;
-+ static const int yyterror_;
-+ static const int yyerrcode_;
-+ static const int yyntokens_;
-+ static const unsigned int yyuser_token_number_max_;
-+ static const token_number_type yyundef_token_;
-+
-+ /* Debugging. */
-+ int yydebug_;
-+ std::ostream* yycdebug_;
-+
-+
-+ /* User arguments. */
-+ QMake::Lexer* lexer;
-+ QValueStack<ProjectAST*>& projects;
-+ int depth;
-+ };
-+}
-+
-+
-+#endif /* ! defined PARSER_HEADER_H */
-diff -u --exclude=.svn -Nur kdev_3.4.0.org/buildtools/lib/parsers/qmake/qmake.yy kdev_3.4.0/buildtools/lib/parsers/qmake/qmake.yy
---- buildtools/lib/parsers/qmake/qmake.yy 2007-02-07 21:15:37.000000000 +0100
-+++ buildtools/lib/parsers/qmake/qmake.yy 2007-02-07 20:35:13.000000000 +0100
-@@ -2,6 +2,8 @@
- /***************************************************************************
- * Copyright (C) 2005 by Alexander Dymo *
- * adymo@kdevelop.org *
-+ * Copyright (C) 2006 by Andreas Pakulat *
-+ * apaku@gmx.de *
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Library General Public License as *
-@@ -38,7 +40,9 @@
-
- #define YYSTYPE_IS_DECLARED
-
--using namespace QMake;
-+namespace QMake
-+{
-+ class Lexer;
-
- /**
- The yylval type.
-@@ -70,13 +74,11 @@
- QString indent;
- };
-
-+#define YYSTYPE Result
- typedef Result YYSTYPE;
--
--void yyerror(const char *str) {
-- printf("%s\n", str);
- }
-
--int yylex();
-+extern int QMakelex( QMake::Result* yylval, QMake::Lexer* lexer );
-
- /**
- The stack to store ProjectAST pointers when a new child
-@@ -90,7 +92,7 @@
- and pushed onto the stack. Therefore all statements which belong to the scope
- or function scope are added as childs to their direct parent (scope or function scope).
- */
--QValueStack<ProjectAST*> projects;
-+//QValueStack<ProjectAST*> projects;
-
- /**
- The current depth of AST node is stored here.
-@@ -98,7 +100,7 @@
- be easily implemented (the parser itself looses all information
- about indentation).
- */
--int depth = 0;
-+// int depth = 0;
-
- /*
- To debug this parser, put the line below into the next bison file section.
-@@ -107,10 +109,19 @@
- */
- %}
-
-+%skeleton "lalr1.cc"
-+%define "parser_class_name" "Parser"
-+%name-prefix="QMake"
-+%parse-param { QMake::Lexer* lexer }
-+%parse-param { QValueStack<ProjectAST*>& projects }
-+%parse-param { int depth }
-+%lex-param { QMake::Lexer* lexer }
-+%start project
-+
- %token ID_SIMPLE
- %token EQ
- %token PLUSEQ
--%token MINUSQE
-+%token MINUSEQ
- %token STAREQ
- %token TILDEEQ
- %token LBRACE
-@@ -228,7 +239,7 @@
- | QUOTED_VARIABLE_VALUE { $<value>$ = $<value>1; }
- ;
-
--operator : EQ | PLUSEQ | MINUSQE | STAREQ | TILDEEQ
-+operator : EQ | PLUSEQ | MINUSEQ | STAREQ | TILDEEQ
- ;
-
- scope : ID_SIMPLE
-@@ -315,4 +326,11 @@
-
- %%
-
--#include "qmake_lex.cpp"
-+
-+namespace QMake
-+{
-+ void Parser::error(const location_type& /*l*/, const std::string& m)
-+ {
-+ std::cerr << m << std::endl;
-+ }
-+}
-diff -u --exclude=.svn -Nur kdev_3.4.0.org/buildtools/lib/parsers/qmake/stack.hh kdev_3.4.0/buildtools/lib/parsers/qmake/stack.hh
---- buildtools/lib/parsers/qmake/stack.hh 1970-01-01 01:00:00.000000000 +0100
-+++ buildtools/lib/parsers/qmake/stack.hh 2007-02-07 20:35:16.000000000 +0100
-@@ -0,0 +1,129 @@
-+/* A Bison parser, made by GNU Bison 2.3. */
-+
-+/* Stack handling for Bison parsers in C++
-+
-+ Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-+
-+ This program is free software; you can redistribute it and/or modify
-+ it under the terms of the GNU General Public License as published by
-+ the Free Software Foundation; either version 2, or (at your option)
-+ any later version.
-+
-+ This program is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ GNU General Public License for more details.
-+
-+ You should have received a copy of the GNU General Public License
-+ along with this program; if not, write to the Free Software
-+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
-+ Boston, MA 02110-1301, USA. */
-+
-+/* As a special exception, you may create a larger work that contains
-+ part or all of the Bison parser skeleton and distribute that work
-+ under terms of your choice, so long as that work isn't itself a
-+ parser generator using the skeleton or a modified version thereof
-+ as a parser skeleton. Alternatively, if you modify or redistribute
-+ the parser skeleton itself, you may (at your option) remove this
-+ special exception, which will cause the skeleton and the resulting
-+ Bison output files to be licensed under the GNU General Public
-+ License without this special exception.
-+
-+ This special exception was added by the Free Software Foundation in
-+ version 2.2 of Bison. */
-+
-+#ifndef BISON_STACK_HH
-+# define BISON_STACK_HH
-+
-+#include <deque>
-+
-+namespace QMake
-+{
-+ template <class T, class S = std::deque<T> >
-+ class stack
-+ {
-+ public:
-+
-+ // Hide our reversed order.
-+ typedef typename S::reverse_iterator iterator;
-+ typedef typename S::const_reverse_iterator const_iterator;
-+
-+ stack () : seq_ ()
-+ {
-+ }
-+
-+ stack (unsigned int n) : seq_ (n)
-+ {
-+ }
-+
-+ inline
-+ T&
-+ operator [] (unsigned int i)
-+ {
-+ return seq_[i];
-+ }
-+
-+ inline
-+ const T&
-+ operator [] (unsigned int i) const
-+ {
-+ return seq_[i];
-+ }
-+
-+ inline
-+ void
-+ push (const T& t)
-+ {
-+ seq_.push_front (t);
-+ }
-+
-+ inline
-+ void
-+ pop (unsigned int n = 1)
-+ {
-+ for (; n; --n)
-+ seq_.pop_front ();
-+ }
-+
-+ inline
-+ unsigned int
-+ height () const
-+ {
-+ return seq_.size ();
-+ }
-+
-+ inline const_iterator begin () const { return seq_.rbegin (); }
-+ inline const_iterator end () const { return seq_.rend (); }
-+
-+ private:
-+
-+ S seq_;
-+ };
-+
-+ /// Present a slice of the top of a stack.
-+ template <class T, class S = stack<T> >
-+ class slice
-+ {
-+ public:
-+
-+ slice (const S& stack,
-+ unsigned int range) : stack_ (stack),
-+ range_ (range)
-+ {
-+ }
-+
-+ inline
-+ const T&
-+ operator [] (unsigned int i) const
-+ {
-+ return stack_[range_ - i];
-+ }
-+
-+ private:
-+
-+ const S& stack_;
-+ unsigned int range_;
-+ };
-+}
-+
-+#endif // not BISON_STACK_HH
-diff -u --exclude=.svn -Nur kdev_3.4.0.org/buildtools/lib/parsers/qmake/tests/runner.cpp kdev_3.4.0/buildtools/lib/parsers/qmake/tests/runner.cpp
---- buildtools/lib/parsers/qmake/tests/runner.cpp 2007-02-07 21:15:35.000000000 +0100
-+++ buildtools/lib/parsers/qmake/tests/runner.cpp 2007-02-07 20:35:15.000000000 +0100
-@@ -17,10 +17,26 @@
- * Free Software Foundation, Inc., *
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
- ***************************************************************************/
--#include <qmakeast.h>
--#include <qmakeastvisitor.h>
--#include <qmakedriver.h>
-+
-+#include <cstdlib>
-+#include <iostream>
-+#include <stdio.h>
-+#include "qmakedriver.h"
-+#include "qmakeastvisitor.h"
-+
-+#include <qstring.h>
-+
- #include <kdebug.h>
-+#include <kcmdlineargs.h>
-+#include <kurl.h>
-+
-+static const KCmdLineOptions options[] =
-+{
-+ {"silent", "Enable Parser debug output", 0},
-+ {"!debug", "Disable output of the generated AST", 0},
-+ {"!+files", "QMake project files", 0}
-+};
-+
-
- class PrintAST : QMake::ASTVisitor
- {
-@@ -120,14 +136,30 @@
- };
- int main(int argc, char *argv[])
- {
-- QMake::ProjectAST *projectAST;
-- int ret;
-- if (argc > 1)
-+ KCmdLineArgs::init( argc, argv, "QMake Parser", "qmake-parser", "Parse QMake project files", "1.0.0");
-+ KCmdLineArgs::addCmdLineOptions(options);
-+
-+ KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
-+
-+ if( args->count() < 1 )
-+ {
-+ KCmdLineArgs::usage(0);
-+ }
-+
-+ int debug = 0;
-+ bool silent = false;
-+
-+ if( args->isSet("silent") )
-+ silent = true;
-+ if( args->isSet("debug") )
-+ debug = 1;
-+ for( int i = 0 ; i < args->count() ; i++ )
- {
-- ret = QMake::Driver::parseFile(argv[1], &projectAST);
-+ QMake::ProjectAST *projectAST;
-+ int ret = QMake::Driver::parseFile(argv[1], &projectAST, debug);
- PrintAST pa;
- if ( ret == 0 )
-- if ((argc < 3) || ((argc == 3) && (strcmp(argv[2], "--silent") != 0)))
-+ if ( !silent )
- {
- pa.processProject(projectAST);
- QString profile;
-@@ -136,6 +168,5 @@
- }
- return ret;
- }
-- else
-- return 0;
-+ return 0;
- }
-diff -u --exclude=.svn -Nur kdev_3.4.0.org/buildtools/lib/parsers/qmake/tests/viewer.cpp kdev_3.4.0/buildtools/lib/parsers/qmake/tests/viewer.cpp
---- buildtools/lib/parsers/qmake/tests/viewer.cpp 2007-02-07 21:15:35.000000000 +0100
-+++ buildtools/lib/parsers/qmake/tests/viewer.cpp 2007-02-07 20:35:15.000000000 +0100
-@@ -78,7 +78,7 @@
- source->setText(str.read());
- f.close();
-
-- int result = QMake::Driver::parseFile(item->text().ascii(), &projectAST);
-+ int result = QMake::Driver::parseFile(item->text().ascii(), &projectAST, 0);
- if (projectAST && (result == 0))
- {
- processAST(projectAST);
-diff -u --exclude=.svn -Nur kdev_3.4.0.org/buildtools/qmake/scope.cpp kdev_3.4.0/buildtools/qmake/scope.cpp
---- buildtools/qmake/scope.cpp 2007-02-07 21:15:44.000000000 +0100
-+++ buildtools/qmake/scope.cpp 2007-02-07 20:57:21.000000000 +0100
-@@ -147,7 +147,7 @@
-
- bool Scope::loadFromFile( const QString& filename )
- {
-- if ( !QFileInfo(filename).exists() || QMake::Driver::parseFile( filename, &m_root ) != 0 )
-+ if ( !QFileInfo(filename).exists() || QMake::Driver::parseFile( filename, &m_root, 0 ) != 0 )
- {
- kdDebug( 9024 ) << "Couldn't parse project: " << filename << endl;
- m_root = 0;
diff --git a/devel/kdevelop/files/patch-kdev_fix_hang_3.4.1 b/devel/kdevelop/files/patch-kdev_fix_hang_3.4.1
new file mode 100644
index 000000000000..28821eef5360
--- /dev/null
+++ b/devel/kdevelop/files/patch-kdev_fix_hang_3.4.1
@@ -0,0 +1,54 @@
+diff -u -u kdevelop-3.4.1/languages/cpp/cppsupportpart.cpp kdevelop-svn/languages/cpp/cppsupportpart.cpp
+--- languages/cpp/cppsupportpart.cpp 2007-05-16 16:36:20.000000000 +0200
++++ languages/cpp/cppsupportpart.cpp 2007-05-16 00:25:57.000000000 +0200
+@@ -3130,11 +3130,11 @@
+ return QString::null;
+ }
+
+-UIBlockTester::UIBlockTesterThread::UIBlockTesterThread( UIBlockTester& parent ) : QThread(), m_parent( parent ) {
++UIBlockTester::UIBlockTesterThread::UIBlockTesterThread( UIBlockTester& parent ) : QThread(), m_parent( parent ), m_stop(false) {
+ }
+
+ void UIBlockTester::UIBlockTesterThread::run() {
+- while(1) {
++ while(!m_stop) {
+ msleep( m_parent.m_msecs / 10 );
+ m_parent.m_timeMutex.lock();
+ QDateTime t = QDateTime::currentDateTime();
+@@ -3146,7 +3146,11 @@
+ m_parent.m_timeMutex.unlock();
+ }
+ }
+-
++
++void UIBlockTester::UIBlockTesterThread::stop() {
++ m_stop = true;
++}
++
+ UIBlockTester::UIBlockTester( uint milliseconds ) : m_thread( *this ), m_msecs( milliseconds ) {
+ m_timer = new QTimer( this );
+ m_timer->start( milliseconds/10 );
+@@ -3155,7 +3159,7 @@
+ m_thread.start();
+ }
+ UIBlockTester::~UIBlockTester() {
+- m_thread.terminate();
++ m_thread.stop();
+ m_thread.wait();
+ }
+
+diff -u -u kdevelop-3.4.1/languages/cpp/cppsupportpart.h kdevelop-svn/languages/cpp/cppsupportpart.h
+--- languages/cpp/cppsupportpart.h 2007-05-16 16:36:20.000000000 +0200
++++ languages/cpp/cppsupportpart.h 2007-05-16 00:25:57.000000000 +0200
+@@ -43,9 +43,10 @@
+ public:
+ UIBlockTesterThread( UIBlockTester& parent );
+ void run();
+-
++ void stop();
+ private:
+ UIBlockTester& m_parent;
++ bool m_stop;
+ };
+ friend class UIBlockTesterThread;
+ public:
diff --git a/devel/kdevelop/pkg-plist b/devel/kdevelop/pkg-plist
index 84a292769171..58c8418abdde 100644
--- a/devel/kdevelop/pkg-plist
+++ b/devel/kdevelop/pkg-plist
@@ -143,12 +143,18 @@ include/kdevelop/widgets/qcomboview.h
include/kdevelop/widgets/resizablecombo.h
include/kinterfacedesigner/designer.h
lib/kconf_update_bin/kdev-gen-settings-kconf_update
+lib/kde3/kded_kdevsvnd.a
+lib/kde3/kded_kdevsvnd.la
+lib/kde3/kded_kdevsvnd.so
lib/kde3/kio_chm.a
lib/kde3/kio_chm.la
lib/kde3/kio_chm.so
lib/kde3/kio_csharpdoc.a
lib/kde3/kio_csharpdoc.la
lib/kde3/kio_csharpdoc.so
+lib/kde3/kio_kdevsvn.a
+lib/kde3/kio_kdevsvn.la
+lib/kde3/kio_kdevsvn.so
lib/kde3/kio_perldoc.a
lib/kde3/kio_perldoc.la
lib/kde3/kio_perldoc.so
@@ -1311,6 +1317,7 @@ share/apps/kdevrubysupport/pics/ruby_config.png
share/apps/kdevrubysupport/pics/ruby_run.png
share/apps/kdevscripting/kdevscripting.rc
share/apps/kdevscriptproject/kdevscriptproject.rc
+share/apps/kdevsnippet/kdevpart_snippet.rc
share/apps/kdevsqlsupport/kdevsqlsupport.rc
share/apps/kdevtipofday/kdevpart_tipofday.rc
share/apps/kdevtipofday/tips
@@ -1482,6 +1489,7 @@ share/services/docdoxygenplugin.desktop
share/services/dockdevtocplugin.desktop
share/services/docqtplugin.desktop
share/services/kchmpart.desktop
+share/services/kded/kdevsvnd.desktop
share/services/kdevabbrev.desktop
share/services/kdevadaproject.desktop
share/services/kdevadasupport.desktop
@@ -1553,6 +1561,11 @@ share/services/kdevsnippet.desktop
share/services/kdevsqlsupport.desktop
share/services/kdevsubversion.desktop
share/services/kdevsubversionintegrator.desktop
+share/services/kdevsvn+file.protocol
+share/services/kdevsvn+http.protocol
+share/services/kdevsvn+https.protocol
+share/services/kdevsvn+ssh.protocol
+share/services/kdevsvn+svn.protocol
share/services/kdevtexttools.desktop
share/services/kdevtipofday.desktop
share/services/kdevtmakeproject.desktop
@@ -1761,6 +1774,7 @@ share/servicetypes/kdevelopversioncontrol.desktop
@dirrm share/apps/kdevtools
@dirrm share/apps/kdevtipofday
@dirrm share/apps/kdevsqlsupport
+@dirrm share/apps/kdevsnippet
@dirrm share/apps/kdevscriptproject
@dirrm share/apps/kdevscripting
@dirrm share/apps/kdevrubysupport/pics