# Licence: wxWindows licence
############################################################################
+# Extra^2 debug mode, for if things ever get really weird.
+[ -z "$WXDEBUG_X" ] || set -x
+
# We expect a posix shell, so if this is a Bourne shell,
# and apparently a few still exist, try for bash or ksh.
[--list] [--host=HOST] [--toolkit=TOOLKIT] [--universal[=yes|no]]
[--unicode[=yes|no]] [--debug[=yes|no]] [--static[=yes|no]]
[--version[=VERSION]] [--basename] [--cc] [--cppflags] [--cflags]
- [--cxxflags] [--rezflags] [--libs] [--cxx] [--ld] [--linkdeps]
+ [--cxxflags] [--rescomp] [--libs] [--cxx] [--ld] [--linkdeps]
[--utility=UTIL] [LIB ...]
wx-config returns information about the wxWidgets libraries available
[ $# -gt 0 ] || usage 1
+# Contentious tools determined by configure.
+EGREP="@EGREP@"
+
# For the people who know what they want, or think they do:
# Divide the valid arguments into functional groups for later examination,
release version version_full
basename
cppflags cflags cxxflags
+ rescomp
rezflags
libs
linkdeps
wxconfig_yesno_options="universal unicode debug static"
# Boolean options that do something or not.
-wxconfig_flag_options="$wxconfig_yesno_options no_rpath inplace"
+wxconfig_flag_options="$wxconfig_yesno_options selected_config no_rpath inplace"
option_name()
{
_option_name_temp=${1%%=*}
- echo "${_option_name_temp#--}" | tr '-' '_'
+ echo ${_option_name_temp#--} | tr '-' '_'
}
# option_value _string
eval echo "\${$1_host}\${$1_toolkit}\${$1_widgetset}-\${$1_chartype}-\${$1_debugtype}\${$1_linkage}-\${$1_version}\${$1_flavour}"
}
+# Returns true if this script is for a cross compiled config.
+is_cross() { [ "x@cross_compiling@" = "xyes" ]; }
+
# Determine the base directories we require.
prefix=${input_option_prefix-${this_prefix:-@prefix@}}
installed_configs=$( cd "$wxconfdir" 2> /dev/null && ls | grep -v "^inplace-" )
-target="@host_alias@"
+is_cross && target="@host_alias@"
# Define a pseudo-hash to contain the specification of this wx-config
# instance and its associated library.
# find_eligible_delegates _mask
# Outputs all the config files installed which match the
# (extended regex) _mask passed as an argument.
-find_eligible_delegates() { echo "$installed_configs" | grep -E "$1" 2> /dev/null; }
+find_eligible_delegates() { echo "$installed_configs" | $EGREP "$1" 2> /dev/null; }
# user_mask_fits _config
# Returns true if the string _config satisfies the user specified mask.
-user_mask_fits() { echo "$1" | grep -E "$configmask" > /dev/null 2>&1; }
+user_mask_fits() { echo "$1" | $EGREP "$configmask" > /dev/null 2>&1; }
# count_fields _word
# Returns the number of IFS split fields in _word
if [ -n "$_legacy_configs" ]; then
_legacy_mask=$(get_legacy_mask)
for d in $_legacy_configs; do
- if echo $d | grep -E $_legacy_mask > /dev/null 2>&1 ; then
+ if echo $d | $EGREP $_legacy_mask > /dev/null 2>&1 ; then
echo "$d"
return
fi
EOF
- # PIPEDREAM: This will probably give Vadim an aneurysm if I
- # mention it out of context, but from here we are actually
- # just a teensy step from simply building the missing config
- # for the user on the fly if this is an in tree wx-config.
+ # PIPEDREAM: from here we are actually just a teensy step
+ # from simply building the missing config for the user
+ # on the fly if this is an in tree wx-config.
exit 1
fi
bindir="@bindir@"
# Trivial queries we can answer now.
-[ -z "$output_option_prefix" ] || echo $prefix
-[ -z "$output_option_exec_prefix" ] || echo $exec_prefix
-[ -z "$output_option_release" ] || echo "@WX_RELEASE@"
-[ -z "$output_option_version" ] || echo "@WX_VERSION@"
-[ -z "$output_option_version_full" ] || echo "@WX_SUBVERSION@"
-[ -z "$output_option_basename" ] || echo "@WX_LIBRARY_BASENAME_GUI@"
-[ -z "$output_option_rezflags" ] || echo $(eval echo "@MACRESWXCONFIG@")
-[ -z "$output_option_cc" ] || echo "@CC@"
-[ -z "$output_option_cxx" ] || echo "@CXX@"
-[ -z "$output_option_ld" ] || echo "@EXE_LINKER@"
+[ -z "$output_option_prefix" ] || echo $prefix
+[ -z "$output_option_exec_prefix" ] || echo $exec_prefix
+[ -z "$output_option_release" ] || echo "@WX_RELEASE@"
+[ -z "$output_option_version" ] || echo "@WX_VERSION@"
+[ -z "$output_option_version_full" ] || echo "@WX_SUBVERSION@"
+[ -z "$output_option_basename" ] || echo "@WX_LIBRARY_BASENAME_GUI@"
+[ -z "$output_option_cc" ] || echo "@CC@"
+[ -z "$output_option_cxx" ] || echo "@CXX@"
+[ -z "$output_option_ld" ] || echo "@EXE_LINKER@"
+[ -z "$flag_option_selected_config" ] || echo "$this_config"
+
+
+# --rezflags is deprecated and disabled (2005/11/29)
+if [ -n "$output_option_rezflags" ]; then
+ echo "@true"
+ decho "Warning: --rezflags, along with Mac OS classic resource building" \
+ "is deprecated. You should remove this from your Makefile and" \
+ "build .app bundles instead."
+fi
# The rest are going to need a little more work.
# --------------------------------------------------------------
-is_cross() { [ "x@cross_compiling@" = "xyes" ]; }
is_monolithic() { [ "x@MONOLITHIC@" = "x1" ]; }
is_static() { [ -n "$this_linkage" ]; }
is_installed() { [ -z "$this_prefix" ]; }
# Additional configuration for individual library components.
ldflags_gl="@LDFLAGS_GL@"
-ldlibs_base="@WXCONFIG_EXTRALIBS@"
+ldlibs_base="@WXCONFIG_LIBS@"
ldlibs_core="@EXTRALIBS_GUI@"
ldlibs_gl="@OPENGL_LIBS@"
ldlibs_html="@EXTRALIBS_HTML@"
if is_static; then
_wxlibs="$_wxlibs ${libdir}/lib${_libname}.a"
for f in $(eval echo \"\$ldlibs_$lib\"); do
- _all_libs="$(remove_field $f $_all_libs) $f"
+
+ # Only propagate duplicate -libraries to their latest
+ # possible position. Do not eliminate any other
+ # duplicates that might occur. They should be fixed
+ # in configure long before they get here.
+ # This started as a workaround for Mac -framework,
+ # but it seems like a better policy in general, which
+ # will let the more heinous bugs in configure shake out.
+ # We should maybe filter *.a here too, but not unless
+ # we have to.
+ case "$f" in
+ -l*) _all_libs="$(remove_field $f $_all_libs) $f" ;;
+ *) _all_libs="$_all_libs $f" ;;
+ esac
+
done
else
_wxlibs="$_wxlibs -l${_libname}"
# output the list of libraries the main program should depend on
#
# of course, this duplication is bad but I'll leave to somebody else the care
-# of refactoring this as I don't see any way to do it
+# of refactoring this as I don't see any way to do it - VZ.
+
+# This (and the other cruft to support it) should be removed with
+# reference to the FIXME above when configure stops piping us a slurry
+# of options that need to be decomposed again for most practical uses - RL.
link_deps_for()
{
_wxlibs=''
_include_cppflags="-I${includedir} -I${prefix}/contrib/include"
fi
-_cppflags=$(echo "-I${libdir}/wx/include/@TOOLCHAIN_FULLNAME@" $_include_cppflags "@WXDEBUG_DEFINE@" "@TOOLCHAIN_DEFS@" "@TOOLCHAIN_DLL_DEFS@" $_gui_cppflags "@WXCONFIG_INCLUDE@" "@WX_LARGEFILE_FLAGS@" "@GCC_PRAGMA_FLAGS@")
+_cppflags=$(echo "-I${libdir}/wx/include/@TOOLCHAIN_FULLNAME@" $_include_cppflags "@WXCONFIG_CPPFLAGS@" $_gui_cppflags)
# now without further ado, we can answer these too.
[ -z "$output_option_cppflags" ] || echo $_cppflags
-[ -z "$output_option_cflags" ] || echo $_cppflags "@CODE_GEN_FLAGS@"
-[ -z "$output_option_cxxflags" ] || echo $_cppflags "@CODE_GEN_FLAGS@" "@CODE_GEN_FLAGS_CXX@"
+[ -z "$output_option_cflags" ] || echo $_cppflags "@WXCONFIG_CFLAGS@"
+[ -z "$output_option_cxxflags" ] || echo $_cppflags "@WXCONFIG_CXXFLAGS@"
[ -z "$output_option_gl_libs" ] || echo $(lib_flags_for gl)
[ -z "$output_option_linkdeps" ] || echo $link_deps
echo $_ldflags "@LDFLAGS@" $_rpath $wx_libs "@DMALLOC_LIBS@"
fi
+
+# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+#
+# Beyond here reside only machine or tool specific workarounds
+# that require knowlege not obtainable prior to this comment.
+#
+# Please. Avoid addding things here, wx-config should avoid
+# hard coding tool specific details. Do not use things here
+# as an example of other things that should be here, These
+# shouldn't be here either. This is a place of last resort
+# for interim workarounds. I can but stress as strongly as
+# the censor will allow, there are only bad examples of things
+# that belong at this level of abstraction to follow. It is
+# a limbo for glitches awaiting the Next Design Repair. Ok.
+#
+# With that firmly in mind, our debut dilemma is:
+
+# Resource compilers. An elusive term that covers some pretty
+# dissimilar concepts on various platforms. The good news is,
+# each platform has only one definition of 'resource', compiled
+# or not, and so we can abstract that neatly to return a platform
+# specific invocation of the appropriate tool. The bad news is,
+# windres (at least) requires knowledge of the wx header files
+# location(s) that cannot be predicted reliably before the call to
+# wx-config is made. Currently for all known resource compilers,
+# we can simply return a command and some salient configuration
+# options in response to a request for --rescomp. So here we
+# top up the options for any tools that may require information
+# that was only just determined in the last few machine cycles,
+# then output the necessary incantation for the platform.
+#
+# Most things should already be constant by the time configure
+# has run. Do not add anything here that is already known there.
+
+if [ -n "$output_option_rescomp" ]; then
+
+ case "@RESCOMP@" in
+ *windres|wrc)
+ # Note that with late model windres, we could just insert
+ # _include_cppflags here, but use the old notation for now
+ # as it is more universally accepted.
+ if is_installed; then
+ echo "@RESCOMP@ --include-dir" \
+ "${includedir}/wx-@WX_RELEASE@@WX_FLAVOUR@" \
+ "@WXCONFIG_RESFLAGS@"
+ else
+ echo "@RESCOMP@ --include-dir ${includedir}" \
+ "--include-dir ${prefix}/contrib/include" \
+ "@WXCONFIG_RESFLAGS@"
+ fi
+ ;;
+
+ # neither rez not emxbind have any specific needs from
+ # us, so just output what was determined by configure.
+ *)
+ echo @RESCOMP@ @WXCONFIG_RESFLAGS@
+ ;;
+ esac
+
+fi
+
+#
+# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+
# And so that's it, we're done. Have a nice build.
exit 0