]> git.saurik.com Git - wxWidgets.git/commitdiff
adapted wx-config to work in multilib mode
authorVáclav Slavík <vslavik@fastmail.fm>
Tue, 29 Jul 2003 22:42:16 +0000 (22:42 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Tue, 29 Jul 2003 22:42:16 +0000 (22:42 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@22374 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

configure
configure.in
docs/tech/index.txt
docs/tech/tn0016.txt [new file with mode: 0644]
wx-config.in

index 4a747004e4da8853871fca18609cbb5bf4aae71f..4ef139d149ec28bc824896223debf44390d24fea 100755 (executable)
--- a/configure
+++ b/configure
@@ -312,7 +312,7 @@ ac_includes_default="\
 #endif"
 
 ac_subdirs_all="$ac_subdirs_all src/expat"
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP CXX CXXFLAGS ac_ct_CXX RANLIB ac_ct_RANLIB AR INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA STRIP IF_GNU_MAKE YACC LEX LEXLIB LEX_OUTPUT_ROOT LN_S CXXCPP subdirs PKG_CONFIG GTK_CFLAGS GTK_LIBS GTK_CONFIG PANGOFT2_CFLAGS PANGOFT2_LIBS X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS PANGOX_CFLAGS PANGOX_LIBS PANGOXFT_CFLAGS PANGOXFT_LIBS RESCOMP DEREZ SETFILE LIBICONV wxUSE_ZLIB wxUSE_REGEX wxUSE_EXPAT wxUSE_ODBC wxUSE_LIBJPEG wxUSE_LIBPNG wxUSE_LIBTIFF VENDOR OFFICIAL_BUILD WXUNIV MONOLITHIC EXTRALIBS EXTRALIBS_XML EXTRALIBS_GUI EXTRALIBS_OPENGL UNICODE BUILD SHARED TOOLKIT_LOWERCASE TOOLKIT_VERSION SAMPLES_RPATH_FLAG HOST_SUFFIX SET_MAKE MAKE_SET INSTALL_DIR LDFLAGS_GUI PLATFORM_UNIX PLATFORM_WIN32 PLATFORM_MSDOS PLATFORM_MAC PLATFORM_MACOSX SO_SUFFIX DLLPREFIX AIX_CXX_LD SHARED_LD_CC SHARED_LD_CXX PIC_FLAG USE_SOVERSION USE_SOVERLINUX USE_SOVERSOLARIS USE_MACVERSION USE_SOSYMLINKS SONAME_FLAG DEPS_TRACKING COND_BUILD_DEBUG COND_BUILD_RELEASE COND_DEPS_TRACKING_0 COND_DEPS_TRACKING_1 COND_MONOLITHIC_0 COND_MONOLITHIC_0_SHARED_0 COND_MONOLITHIC_0_SHARED_0_USE_GUI_1 COND_MONOLITHIC_0_SHARED_0_USE_HTML_1 COND_MONOLITHIC_0_SHARED_1 COND_MONOLITHIC_0_SHARED_1_USE_GUI_1 COND_MONOLITHIC_0_SHARED_1_USE_HTML_1 COND_MONOLITHIC_1 COND_MONOLITHIC_1_SHARED_0 COND_MONOLITHIC_1_SHARED_1 COND_OFFICIAL_BUILD_0_PLATFORM_WIN32_1 COND_OFFICIAL_BUILD_1_PLATFORM_WIN32_1 COND_PLATFORM_MACOSX_0_USE_SOVERSION_1 COND_PLATFORM_MACOSX_1 COND_PLATFORM_MACOSX_1_TOOLKIT_COCOA COND_PLATFORM_MACOSX_1_TOOLKIT_GTK COND_PLATFORM_MACOSX_1_TOOLKIT_MAC COND_PLATFORM_MACOSX_1_USE_SOVERSION_1 COND_PLATFORM_UNIX_1 COND_PLATFORM_WIN32_0 COND_PLATFORM_WIN32_1 COND_SHARED_0_USE_GUI_1_USE_OPENGL_1 COND_SHARED_1_USE_GUI_1_USE_OPENGL_1 COND_TOOLKIT_COCOA COND_TOOLKIT_COCOA_USE_GUI_1_WXUNIV_0 COND_TOOLKIT_GTK COND_TOOLKIT_GTK_USE_GUI_1 COND_TOOLKIT_GTK_USE_GUI_1_WXUNIV_0 COND_TOOLKIT_GTK_USE_GUI_1_WXUNIV_1 COND_TOOLKIT_MAC COND_TOOLKIT_MAC_USE_GUI_1_WXUNIV_0 COND_TOOLKIT_MGL COND_TOOLKIT_MGL_USE_GUI_1 COND_TOOLKIT_MGL_USE_GUI_1_WXUNIV_1 COND_TOOLKIT_MOTIF COND_TOOLKIT_MOTIF_USE_GUI_1 COND_TOOLKIT_MOTIF_USE_GUI_1_WXUNIV_0 COND_TOOLKIT_MSW COND_TOOLKIT_MSW_USE_GUI_1 COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0 COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_1 COND_TOOLKIT_OS2 COND_TOOLKIT_OS2_USE_GUI_1_WXUNIV_0 COND_TOOLKIT_X11 COND_TOOLKIT_X11_USE_GUI_1 COND_TOOLKIT_X11_USE_GUI_1_WXUNIV_1 COND_UNICODE_1 COND_USE_GUI_0 COND_USE_GUI_1 COND_USE_GUI_1_WXUNIV_0 COND_USE_GUI_1_WXUNIV_1 COND_USE_GUI_1_WXUSE_LIBJPEG_BUILTIN COND_USE_GUI_1_WXUSE_LIBPNG_BUILTIN COND_USE_GUI_1_WXUSE_LIBTIFF_BUILTIN COND_USE_SOSYMLINKS_1 COND_USE_SOVERLINUX_1 COND_USE_SOVERSION_0 COND_USE_SOVERSOLARIS_1 COND_WXUNIV_1 COND_WXUSE_EXPAT_BUILTIN COND_WXUSE_LIBJPEG_BUILTIN COND_WXUSE_LIBPNG_BUILTIN COND_WXUSE_LIBTIFF_BUILTIN COND_WXUSE_ODBC_BUILTIN COND_WXUSE_REGEX_BUILTIN COND_WXUSE_ZLIB_BUILTIN COND_PLATFORM_MAC_1 COND_SHARED_1 COND_SHARED_0 LEX_STEM PATH_IFS WX_MAJOR_VERSION_NUMBER WX_MINOR_VERSION_NUMBER WX_RELEASE_NUMBER WX_LIBRARY_NAME_STATIC WX_LIBRARY_NAME_SHARED WX_LIBRARY_BASENAME WX_LIBRARY_IMPORTLIB WX_TARGET_LIBRARY WX_LIBRARY_LINK1 WX_LIBRARY_LINK2 PROGRAM_EXT WX_LIBRARY_NAME_STATIC_GL WX_LIBRARY_NAME_SHARED_GL WX_TARGET_LIBRARY_GL WX_LIBRARY_LINK1_GL WX_LIBRARY_LINK2_GL WX_ALL WX_ALL_INSTALLED SHARED_LD WX_TARGET_LIBRARY_TYPE STATIC_FLAG WXDEBUG_DEFINE USE_GUI AFMINSTALL WIN32INSTALL TOOLKIT TOOLKIT_DIR TOOLKIT_VPATH TOOLCHAIN_NAME TOOLCHAIN_DEFS TOOLCHAIN_DLL_DEFS top_builddir_wxconfig cross_compiling WXCONFIG_LIBS WXCONFIG_LIBS_GL WXCONFIG_LIBS_STATIC WXCONFIG_LIBS_STATIC_GL WXCONFIG_INCLUDE WXCONFIG_RPATH WX_LARGEFILE_FLAGS CODE_GEN_FLAGS CODE_GEN_FLAGS_CXX ALL_OBJECTS ALL_HEADERS ALL_SOURCES GUIDIST PORT_FILES DISTDIR SAMPLES_SUBDIRS LDFLAGS_GL LDFLAGS_VERSIONING LDFLAGS_EXE OPENGL_LIBS DMALLOC_LIBS WX_VERSION_TAG RESFLAGS RESPROGRAMOBJ WX_RESOURCES_MACOSX_ASCII WX_RESOURCES_MACOSX_DATA MACOSX_BUNDLE LIBWXMACRES MACRESCOMP MACSETFILE MACRESWXCONFIG GCC DLLTOOL AS NM LD MAKEINFO INSTALL_LIBRARY ESD_LINK LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP CXX CXXFLAGS ac_ct_CXX RANLIB ac_ct_RANLIB AR INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA STRIP IF_GNU_MAKE YACC LEX LEXLIB LEX_OUTPUT_ROOT LN_S CXXCPP subdirs PKG_CONFIG GTK_CFLAGS GTK_LIBS GTK_CONFIG PANGOFT2_CFLAGS PANGOFT2_LIBS X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS PANGOX_CFLAGS PANGOX_LIBS PANGOXFT_CFLAGS PANGOXFT_LIBS RESCOMP DEREZ SETFILE LIBICONV wxUSE_ZLIB wxUSE_REGEX wxUSE_EXPAT wxUSE_ODBC wxUSE_LIBJPEG wxUSE_LIBPNG wxUSE_LIBTIFF VENDOR OFFICIAL_BUILD WXUNIV MONOLITHIC EXTRALIBS EXTRALIBS_XML EXTRALIBS_GUI EXTRALIBS_OPENGL UNICODE BUILD SHARED TOOLKIT_LOWERCASE TOOLKIT_VERSION SAMPLES_RPATH_FLAG HOST_SUFFIX SET_MAKE MAKE_SET INSTALL_DIR LDFLAGS_GUI PLATFORM_UNIX PLATFORM_WIN32 PLATFORM_MSDOS PLATFORM_MAC PLATFORM_MACOSX SO_SUFFIX DLLPREFIX AIX_CXX_LD SHARED_LD_CC SHARED_LD_CXX PIC_FLAG USE_SOVERSION USE_SOVERLINUX USE_SOVERSOLARIS USE_MACVERSION USE_SOSYMLINKS SONAME_FLAG DEPS_TRACKING COND_BUILD_DEBUG COND_BUILD_RELEASE COND_DEPS_TRACKING_0 COND_DEPS_TRACKING_1 COND_MONOLITHIC_0 COND_MONOLITHIC_0_SHARED_0 COND_MONOLITHIC_0_SHARED_0_USE_GUI_1 COND_MONOLITHIC_0_SHARED_0_USE_HTML_1 COND_MONOLITHIC_0_SHARED_1 COND_MONOLITHIC_0_SHARED_1_USE_GUI_1 COND_MONOLITHIC_0_SHARED_1_USE_HTML_1 COND_MONOLITHIC_1 COND_MONOLITHIC_1_SHARED_0 COND_MONOLITHIC_1_SHARED_1 COND_OFFICIAL_BUILD_0_PLATFORM_WIN32_1 COND_OFFICIAL_BUILD_1_PLATFORM_WIN32_1 COND_PLATFORM_MACOSX_0_USE_SOVERSION_1 COND_PLATFORM_MACOSX_1 COND_PLATFORM_MACOSX_1_TOOLKIT_COCOA COND_PLATFORM_MACOSX_1_TOOLKIT_GTK COND_PLATFORM_MACOSX_1_TOOLKIT_MAC COND_PLATFORM_MACOSX_1_USE_SOVERSION_1 COND_PLATFORM_UNIX_1 COND_PLATFORM_WIN32_0 COND_PLATFORM_WIN32_1 COND_SHARED_0_USE_GUI_1_USE_OPENGL_1 COND_SHARED_1_USE_GUI_1_USE_OPENGL_1 COND_TOOLKIT_COCOA COND_TOOLKIT_COCOA_USE_GUI_1_WXUNIV_0 COND_TOOLKIT_GTK COND_TOOLKIT_GTK_USE_GUI_1 COND_TOOLKIT_GTK_USE_GUI_1_WXUNIV_0 COND_TOOLKIT_GTK_USE_GUI_1_WXUNIV_1 COND_TOOLKIT_MAC COND_TOOLKIT_MAC_USE_GUI_1_WXUNIV_0 COND_TOOLKIT_MGL COND_TOOLKIT_MGL_USE_GUI_1 COND_TOOLKIT_MGL_USE_GUI_1_WXUNIV_1 COND_TOOLKIT_MOTIF COND_TOOLKIT_MOTIF_USE_GUI_1 COND_TOOLKIT_MOTIF_USE_GUI_1_WXUNIV_0 COND_TOOLKIT_MSW COND_TOOLKIT_MSW_USE_GUI_1 COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0 COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_1 COND_TOOLKIT_OS2 COND_TOOLKIT_OS2_USE_GUI_1_WXUNIV_0 COND_TOOLKIT_X11 COND_TOOLKIT_X11_USE_GUI_1 COND_TOOLKIT_X11_USE_GUI_1_WXUNIV_1 COND_UNICODE_1 COND_USE_GUI_0 COND_USE_GUI_1 COND_USE_GUI_1_WXUNIV_0 COND_USE_GUI_1_WXUNIV_1 COND_USE_GUI_1_WXUSE_LIBJPEG_BUILTIN COND_USE_GUI_1_WXUSE_LIBPNG_BUILTIN COND_USE_GUI_1_WXUSE_LIBTIFF_BUILTIN COND_USE_SOSYMLINKS_1 COND_USE_SOVERLINUX_1 COND_USE_SOVERSION_0 COND_USE_SOVERSOLARIS_1 COND_WXUNIV_1 COND_WXUSE_EXPAT_BUILTIN COND_WXUSE_LIBJPEG_BUILTIN COND_WXUSE_LIBPNG_BUILTIN COND_WXUSE_LIBTIFF_BUILTIN COND_WXUSE_ODBC_BUILTIN COND_WXUSE_REGEX_BUILTIN COND_WXUSE_ZLIB_BUILTIN COND_PLATFORM_MAC_1 COND_SHARED_1 COND_SHARED_0 LEX_STEM PATH_IFS WX_MAJOR_VERSION_NUMBER WX_MINOR_VERSION_NUMBER WX_RELEASE_NUMBER WX_LIBRARY_NAME_STATIC WX_LIBRARY_NAME_SHARED WX_LIBRARY_BASENAME_NOGUI WX_LIBRARY_BASENAME_GUI WX_LIBRARY_IMPORTLIB WX_TARGET_LIBRARY WX_LIBRARY_LINK1 WX_LIBRARY_LINK2 PROGRAM_EXT WX_LIBRARY_NAME_STATIC_GL WX_LIBRARY_NAME_SHARED_GL WX_TARGET_LIBRARY_GL WX_LIBRARY_LINK1_GL WX_LIBRARY_LINK2_GL WX_ALL WX_ALL_INSTALLED SHARED_LD WX_TARGET_LIBRARY_TYPE STATIC_FLAG WXDEBUG_DEFINE USE_GUI AFMINSTALL WIN32INSTALL TOOLKIT TOOLKIT_DIR TOOLKIT_VPATH TOOLCHAIN_NAME TOOLCHAIN_DEFS TOOLCHAIN_DLL_DEFS top_builddir_wxconfig cross_compiling WXCONFIG_LIBS WXCONFIG_LIBS_GL WXCONFIG_LIBS_STATIC WXCONFIG_LIBS_STATIC_GL WXCONFIG_INCLUDE WXCONFIG_RPATH WX_LARGEFILE_FLAGS CODE_GEN_FLAGS CODE_GEN_FLAGS_CXX ALL_OBJECTS ALL_HEADERS ALL_SOURCES GUIDIST PORT_FILES DISTDIR SAMPLES_SUBDIRS LDFLAGS_GL LDFLAGS_VERSIONING LDFLAGS_EXE OPENGL_LIBS DMALLOC_LIBS WX_VERSION_TAG RESFLAGS RESPROGRAMOBJ WX_RESOURCES_MACOSX_ASCII WX_RESOURCES_MACOSX_DATA MACOSX_BUNDLE LIBWXMACRES MACRESCOMP MACSETFILE MACRESWXCONFIG GCC DLLTOOL AS NM LD MAKEINFO INSTALL_LIBRARY ESD_LINK LIBOBJS LTLIBOBJS'
 ac_subst_files=''
 
 # Initialize some variables set by options.
@@ -24454,6 +24454,7 @@ rm -f conftest.$ac_objext conftest.$ac_ext
         TOOLKIT_VPATH="\${top_srcdir}/src/mac${PATH_IFS}\${top_srcdir}/src/mac/morefilex"
         TOOLKIT=MAC
                 GUIDIST=MACX_DIST
+                        WXBASEPORT="_carbon"
     fi
 
     if test "$wxUSE_COCOA" = 1; then
@@ -25155,7 +25156,8 @@ fi
 
 WX_LIBRARY="wx_${TOOLCHAIN_NAME}"
 WX_LIBRARY_GL="wx_${TOOLCHAIN_NAME_GL}"
-WX_LIBRARY_BASENAME="wx_${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}"
+WX_LIBRARY_BASENAME_NOGUI="wx_base${WXBASEPORT}${lib_unicode_suffix}${lib_debug_suffix}"
+WX_LIBRARY_BASENAME_GUI="wx_${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}"
 
 WX_LIBRARY_NAME_SHARED="lib${WX_LIBRARY}.${SO_SUFFIX}.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}"
 WX_LIBRARY_NAME_SHARED_GL="lib${WX_LIBRARY_GL}.${SO_SUFFIX}.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}"
@@ -33794,6 +33796,7 @@ fi
 
 
 
+
 TOOLKIT_LOWERCASE=`echo $TOOLKIT | tr [A-Z] [a-z]`
 
 
@@ -35162,6 +35165,7 @@ SAMPLES_SUBDIRS="`echo $SAMPLES_SUBDIRS | tr -s ' ' | tr ' ' '\n' | sort | uniq
 
 
 
+
 
 
 echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
@@ -36051,7 +36055,8 @@ s,@WX_MINOR_VERSION_NUMBER@,$WX_MINOR_VERSION_NUMBER,;t t
 s,@WX_RELEASE_NUMBER@,$WX_RELEASE_NUMBER,;t t
 s,@WX_LIBRARY_NAME_STATIC@,$WX_LIBRARY_NAME_STATIC,;t t
 s,@WX_LIBRARY_NAME_SHARED@,$WX_LIBRARY_NAME_SHARED,;t t
-s,@WX_LIBRARY_BASENAME@,$WX_LIBRARY_BASENAME,;t t
+s,@WX_LIBRARY_BASENAME_NOGUI@,$WX_LIBRARY_BASENAME_NOGUI,;t t
+s,@WX_LIBRARY_BASENAME_GUI@,$WX_LIBRARY_BASENAME_GUI,;t t
 s,@WX_LIBRARY_IMPORTLIB@,$WX_LIBRARY_IMPORTLIB,;t t
 s,@WX_TARGET_LIBRARY@,$WX_TARGET_LIBRARY,;t t
 s,@WX_LIBRARY_LINK1@,$WX_LIBRARY_LINK1,;t t
index 473dbc6fd3ac1ffdd5b1b21218840d78df421841..d42f7feb357abdf17ad7f390c82ebf669ec31d07 100644 (file)
@@ -2741,6 +2741,9 @@ equivalent variable and GTK+ is version 1.2.3 or above.
         TOOLKIT=MAC
         dnl we can't call this MAC_DIST or autoconf thinks its a macro
         GUIDIST=MACX_DIST
+        dnl wxMac version of wxBase and wxCocoa or wxBase-only built on Darwin
+        dnl are different, so they need different names:
+        WXBASEPORT="_carbon"
     fi
 
     if test "$wxUSE_COCOA" = 1; then
@@ -3012,7 +3015,8 @@ fi
 dnl library link name
 WX_LIBRARY="wx_${TOOLCHAIN_NAME}"
 WX_LIBRARY_GL="wx_${TOOLCHAIN_NAME_GL}"
-WX_LIBRARY_BASENAME="wx_${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}"
+WX_LIBRARY_BASENAME_NOGUI="wx_base${WXBASEPORT}${lib_unicode_suffix}${lib_debug_suffix}"
+WX_LIBRARY_BASENAME_GUI="wx_${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}"
 
 dnl the name of the shared library
 WX_LIBRARY_NAME_SHARED="lib${WX_LIBRARY}.${SO_SUFFIX}.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}"
@@ -5541,6 +5545,7 @@ AC_SUBST(OFFICIAL_BUILD)
 
 AC_SUBST(WXUNIV)
 AC_SUBST(MONOLITHIC)
+AC_SUBST(LIBS)
 AC_SUBST(EXTRALIBS)
 AC_SUBST(EXTRALIBS_XML)
 AC_SUBST(EXTRALIBS_GUI)
@@ -5578,7 +5583,8 @@ AC_SUBST(WX_MINOR_VERSION_NUMBER)
 AC_SUBST(WX_RELEASE_NUMBER)
 AC_SUBST(WX_LIBRARY_NAME_STATIC)
 AC_SUBST(WX_LIBRARY_NAME_SHARED)
-AC_SUBST(WX_LIBRARY_BASENAME)
+AC_SUBST(WX_LIBRARY_BASENAME_NOGUI)
+AC_SUBST(WX_LIBRARY_BASENAME_GUI)
 AC_SUBST(WX_LIBRARY_IMPORTLIB)
 AC_SUBST(WX_TARGET_LIBRARY)
 AC_SUBST(WX_LIBRARY_LINK1)
index 603a59d424431cf008e2244bf13418803301694c..4b0426e283f21677cf26068c88f7132f54f41182 100644 (file)
@@ -13,9 +13,10 @@ tn0009.htm   Creating and converting icons
 tn0010.htm   Compiling wxWindows applications in the VC++ IDE
 tn0011.txt   All about version numbers
 tn0012.txt   wxWindows platform, toolkit and library names
-tn0013.txt   how to make a wxGTK distribution
+tn0013.txt   How to make a wxGTK distribution
 tn0014.txt   XRC resources format specification
-tn0015.txt   how to add new bitmaps to wxWindows UI elements
+tn0015.txt   How to add new bitmaps to wxWindows UI elements
+tn0016.txt   How to add new files and libraries to wxWindows build system
 
 
 Version: $Id$
diff --git a/docs/tech/tn0016.txt b/docs/tech/tn0016.txt
new file mode 100644 (file)
index 0000000..5805e0c
--- /dev/null
@@ -0,0 +1,75 @@
+         How to add new files and libraries to wxWindows build system
+         ============================================================
+
+
+1. Regenerating makefiles
+-------------------------
+
+
+2. Bakefile files organization
+------------------------------
+
+
+3. Adding files to existing library
+-----------------------------------
+
+
+4. Adding sample or contrib library
+-----------------------------------
+
+
+5. Adding new core library
+--------------------------
+
+When adding new library to the core set of libraries, the files must be
+added to both a newly added library in multilib build and into the single
+library built in monolithic mode. We will assume that the new library is
+called wxFoo.
+
+a) Add files to files.bkl                 FIXME
+
+b) Modify bakefile system in build/bakefiles/ to recognize wxFoo:
+   * Add 'foo'to MAIN_LIBS and LIBS_NOGUI or LIBS_GUI (depending on whether
+     the library depends on wxCore or not) to wxwin.py file.
+   * Add WXLIB_FOO definition to common.bkl (into the "Names of component
+     libraries" section). It looks like this:
+       <set var="WXLIB_FOO">
+          <if cond="MONOLITHIC=='0'">$(mk.evalExpr(wxwin.mkLibName('foo')))</if>
+       </set>
+
+c) Add files to monolithic build          FIXME
+
+d) Add files to multilib build            FIXME
+
+e) Regenerate all makefiles (don't forget to run autoconf)
+
+f) Update wx-config.in to contain information about the library and needed
+   linker flags:
+   * Add "foo" to either CORE_BASE_LIBS or CORE_GUI_LIBS so that wxFoo is
+     not treated as contrib library in monolithic build.
+   * If wxFoo links against additional libraries, add neccessary linker
+     flags and libraries to ldflags_foo and ldlibs_foo variables (both are
+     optional).
+
+g) Update defs.h to define WXMAKINGDLL_FOO if WXMAKINGDLL is defined (add
+   #define WXMAKINGDLL_FOO inside first "#ifdef WXMAKINGDLL" block in defs.h)
+   and to define WXDLLIMPEXP_FOO and WXDLLIMPEXP_DATA_FOO. You can copy
+   e.g. WXDLLIMPEXP_NET definition, it is something like this:
+        #ifdef WXMAKINGDLL_NET
+            #define WXDLLIMPEXP_NET WXEXPORT
+            #define WXDLLIMPEXP_DATA_NET(type) WXEXPORT type
+        #elif defined(WXUSINGDLL)
+            #define WXDLLIMPEXP_NET WXIMPORT
+            #define WXDLLIMPEXP_DATA_NET(type) WXIMPORT type
+        #else // not making nor using DLL
+            #define WXDLLIMPEXP_NET
+            #define WXDLLIMPEXP_DATA_NET(type) type
+        #endif
+
+h) Add information about wxFoo to the manual
+   FIXME - where exactly
+
+
+=== EOF ===
+
+Version: $Id$
index 74ba23e94d024adb8b6ac7bfeff1b9e83873bd5a..de7027a77536c94ba449f3590c6b1d1cdf15361d 100755 (executable)
@@ -1,5 +1,6 @@
 #!/bin/sh
 
+# Generic configuration variables:
 prefix=@prefix@
 exec_prefix=@exec_prefix@
 exec_prefix_set=no
@@ -12,6 +13,64 @@ builddir=@top_builddir_wxconfig@
 cross_compiling=@cross_compiling@
 target=@host_alias@
 static_flag=@STATIC_FLAG@
+basename_nogui=@WX_LIBRARY_BASENAME_NOGUI@
+basename_gui=@WX_LIBRARY_BASENAME_GUI@
+release=@WX_MAJOR_VERSION_NUMBER@.@WX_MINOR_VERSION_NUMBER@
+is_monolithic=@MONOLITHIC@
+
+
+# Linker flags for sublibraries:
+CORE_BASE_LIBS="xml net base"
+CORE_GUI_LIBS="html core"
+
+ldlibs_base="@LIBS@"
+ldlibs_core="@EXTRALIBS_GUI@"
+ldlibs_xml="@EXTRALIBS_XML@"
+
+ldflags_gl="@LDFLAGS_GL@"
+ldlibs_gl="@OPENGL_LIBS@"
+
+
+# is $1 among the rest of arguments?
+isinlist()
+{
+    value=$1
+    shift
+    isin=no
+    for iii in $* ; do
+        if test $iii = $value ; then isin=yes ; fi
+    done
+    test $isin = yes
+}
+
+# output linker commands needed to link against libraries passed as arguments
+# (does not handle monolithic/multilib):
+output_libs()
+{
+    all_libs=""
+    all_ldflags=""
+    wxlibs=""
+      
+    for lib in $* ; do
+        eval xlibs=\$ldlibs_$lib
+        eval xflags=\$ldflags_$lib
+        if isinlist $lib $CORE_BASE_LIBS ; then
+            basename=$basename_nogui
+        else
+            basename=$basename_gui
+        fi
+
+        all_ldflags="$all_ldflags $xflags"
+        if test $static_flag = yes ; then
+            wxlibs="$wxlibs @libdir@/lib${basename}_${lib}-${release}.a"
+            all_libs="$all_libs $xlibs"
+        else
+            wxlibs="$wxlibs -l${basename}_${lib}-${release}"
+        fi
+    done
+
+    echo $all_ldflags $wxlibs $all_libs
+}
 
 # return the absolute path prepending builddir to it if needed
 makeabs()
@@ -34,7 +93,7 @@ usage()
 {
     cat <<EOF
 Usage: wx-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--release]
-                 [--basename] [--static] [--libs] [--gl-libs]
+                 [--basename] [--static] [--libs[=LIBS]] [--gl-libs]
                  [--cppflags] [--cflags] [--cxxflags] [--ldflags] [--rezflags]
                  [--cc] [--cxx] [--ld]
 
@@ -55,6 +114,12 @@ this:
 Note that any other options supplied must come *after* the prefix
 specification for it to take effect.
 
+--static must come before --libs and --gl-libs.
+
+--libs can take optional argument that contains comma-separated list of
+wxWindows libraries to link against. This list can include both core
+and contrib libraries.
+
 EOF
 
     exit $1
@@ -132,12 +197,10 @@ while test $# -gt 0; do
       echo @WX_MAJOR_VERSION_NUMBER@.@WX_MINOR_VERSION_NUMBER@.@WX_RELEASE_NUMBER@
       ;;
     --release)
-      # Should echo @WX_RELEASE@ instead, but that doesn't seem to be replaced after 
-      # configure has run on this file.
-      echo @WX_MAJOR_VERSION_NUMBER@.@WX_MINOR_VERSION_NUMBER@
+      echo $release
       ;;
     --basename)
-      echo @WX_LIBRARY_BASENAME@
+      echo $basename
       ;;
     --static)
       static_flag=yes
@@ -157,7 +220,19 @@ while test $# -gt 0; do
     --rezflags)
       echo @MACRESWXCONFIG@
       ;;
-    --libs)
+
+    --libs*)
+      # find if the argument was --libs=list,of,libs or --libs:
+      if test "x$optarg" = "x" ; then
+          if test "$is_monolithic" = "0" ; then
+              # link against all libs if none given explicitly:
+              libs_list="$CORE_GUI_LIBS $CORE_BASE_LIBS"
+          fi
+      else
+          libs_list=`echo "$optarg" | tr ',' ' '`
+      fi
+
+      # include install directory only if it is not default:
       if test "@libdir@" != "/usr/lib" \
               -a \( "${cross_compiling}" != "yes" \
                     -o "@libdir@" != "/usr/${target}/lib" \) ;
@@ -165,20 +240,35 @@ while test $# -gt 0; do
           libs="-L@libdir@"
       fi
 
-      if test $static_flag = yes ; then
-          echo "$libs @LDFLAGS@ @WXCONFIG_RPATH@ @libdir@/@WXCONFIG_LIBS_STATIC@ @EXTRALIBS_GUI@ @LIBS@ @DMALLOC_LIBS@"
+      # in monolithic build, link against the main library:
+      if test "$is_monolithic" = "1" ; then
+          # filter out core libs, leave only contrib in libs_list:
+          newlist=
+          for i in $libs_list ; do
+              if isinlist $i $CORE_BASE_LIBS $CORE_GUI_LIBS ; then
+                  libs_list="" # do nothing
+              else
+                  newlist="$newlist $i"
+              fi
+          done
+          libs_list="$newlist"
+          
+          # output link flags:
+          contrib_libs=`output_libs $libs_list`
+          if test $static_flag = yes ; then
+              echo "$libs @LDFLAGS@ @WXCONFIG_RPATH@ $contrib_libs @libdir@/@WXCONFIG_LIBS_STATIC@ @EXTRALIBS_GUI@ @LIBS@ @DMALLOC_LIBS@"
+          else
+              echo $libs @LDFLAGS@ @WXCONFIG_RPATH@ $contrib_libs @WXCONFIG_LIBS@ @DMALLOC_LIBS@
+          fi
       else
-          echo $libs @LDFLAGS@ @WXCONFIG_RPATH@ @WXCONFIG_LIBS@ @DMALLOC_LIBS@
+          # in multilib mode, link against all sublibraries:
+          wxlibs=`output_libs $libs_list`
+          echo $libs @WXCONFIG_RPATH@ $wxlibs @DMALLOC_LIBS@
       fi
 
       ;;
     --gl-libs)
-      if test $static_flag = yes -a "x" != "x@WXCONFIG_LIBS_STATIC_GL@" ; then
-          gllibs="@libdir@/@WXCONFIG_LIBS_STATIC_GL@"
-      else
-          gllibs="@WXCONFIG_LIBS_GL@"
-      fi
-      echo @LDFLAGS_GL@ $gllibs
+      output_libs gl
       ;;
     --cc)
       echo $CC