+dnl ---------------------------------------------------------------------------
+dnl --disable-gui will build only non-GUI part of wxWindows
+dnl
+dnl NB: this is still in testing stage, don't use if you don't know what you're
+dnl doing
+dnl ---------------------------------------------------------------------------
+
+WX_ARG_ENABLE(gui, [ --enable-gui use GUI classes], wxUSE_GUI)
+
+dnl ---------------------------------------------------------------------------
+dnl (small) optional non GUI classes
+dnl ---------------------------------------------------------------------------
+
+WX_ARG_ENABLE(intl, [ --enable-intl use internationalization system], wxUSE_INTL)
+WX_ARG_ENABLE(config, [ --enable-config use wxConfig (and derived) classes], wxUSE_CONFIG)
+WX_ARG_ENABLE(sockets, [ --enable-sockets use socket/network classes], wxUSE_SOCKETS)
+WX_ARG_ENABLE(ipc, [ --enable-ipc use interprocess communication (wxSocket etc.)], wxUSE_IPC)
+WX_ARG_ENABLE(apple_ieee, [ --enable-apple_ieee use the Apple IEEE codec], wxUSE_APPLE_IEEE)
+WX_ARG_ENABLE(timedate, [ --enable-timedate use date/time classes], wxUSE_TIMEDATE)
+WX_ARG_ENABLE(fraction, [ --enable-fraction use wxFraction class], wxUSE_FRACTION)
+WX_ARG_ENABLE(dynlib, [ --enable-dynlib use wxLibrary class for DLL loading], wxUSE_DYNLIB_CLASS)
+WX_ARG_ENABLE(longlong, [ --enable-longlong use wxLongLong class], wxUSE_LONGLONG)
+WX_ARG_ENABLE(log, [ --enable-log use logging system], wxUSE_LOG)
+WX_ARG_ENABLE(streams, [ --enable-streams use wxStream etc classes], wxUSE_STREAMS)
+WX_ARG_ENABLE(file, [ --enable-file use wxFile classes], wxUSE_FILE)
+WX_ARG_ENABLE(textfile, [ --enable-textfile use wxTextFile classes], wxUSE_TEXTFILE)
+WX_ARG_ENABLE(unicode, [ --enable-unicode compile wxString with Unicode support], wxUSE_UNICODE)
+WX_ARG_ENABLE(wcsrtombs, [ --enable-wcsrtombs use wcsrtombs instead of buggy (GNU libc1/Linux libc5) wcstombs], wxUSE_WCSRTOMBS)
+WX_ARG_ENABLE(joystick, [ --enable-joystick compile in joystick support (Linux only)], wxUSE_JOYSTICK)
+
+dnl ---------------------------------------------------------------------------
+dnl "big" options (i.e. those which change a lot of things throughout the library)
+dnl ---------------------------------------------------------------------------
+
+WX_ARG_ENABLE(threads, [ --enable-threads use threads], wxUSE_THREADS)
+WX_ARG_ENABLE(serial, [ --enable-serial use class serialization], wxUSE_SERIAL)
+
+dnl ---------------------------------------------------------------------------
+dnl "big" GUI options
+dnl ---------------------------------------------------------------------------
+
+WX_ARG_ENABLE(docview, [ --enable-docview use document view architecture], wxUSE_DOC_VIEW_ARCHITECTURE)
+WX_ARG_ENABLE(help, [ --enable-help use help (using external browser at present)], wxUSE_HELP)
+WX_ARG_ENABLE(constraints, [ --enable-constraints use layout-constraints system], wxUSE_CONSTRAINTS)
+WX_ARG_ENABLE(printarch, [ --enable-printarch use printing architecture], wxUSE_PRINTING_ARCHITECTURE)
+WX_ARG_ENABLE(mdi, [ --enable-mdi use multiple document interface architecture], wxUSE_MDI_ARCHITECTURE)
+
+dnl ---------------------------------------------------------------------------
+dnl PostScript options
+dnl ---------------------------------------------------------------------------
+WX_ARG_ENABLE(postscript, [ --enable-postscript use wxPostscriptDC device context (default for gtk+)], wxUSE_POSTSCRIPT)
+
+dnl VZ: these options seem to be always on, if someone wants to change it please do
+dnl WX_ARG_ENABLE(PS-normalized, [ --enable-PS-normalized use normalized PS fonts], dnl wxUSE_NORMALIZED_PS_FONTS)
+dnl WX_ARG_ENABLE(afmfonts, [ --enable-afmfonts use Adobe Font Metric Font table], dnl wxUSE_AFM_FOR_POSTSCRIPT)
+
+dnl ---------------------------------------------------------------------------
+dnl resources
+dnl ---------------------------------------------------------------------------
+WX_ARG_ENABLE(prologio, [ --enable-prologio use Prolog IO library], wxUSE_PROLOGIO)
+WX_ARG_ENABLE(resources, [ --enable-resources use wxWindows resources], wxUSE_RESOURCES)
+
+WX_ARG_ENABLE(xresources, [ --enable-xresources use X resources for save (default for gtk+)], wxUSE_X_RESOURCES)
+
+dnl ---------------------------------------------------------------------------
+dnl IPC &c
+dnl ---------------------------------------------------------------------------
+
+WX_ARG_ENABLE(clipboard, [ --enable-clipboard use wxClipboard classes], wxUSE_CLIPBOARD)
+WX_ARG_ENABLE(dnd, [ --enable-dnd use Drag'n'Drop classes], wxUSE_DRAG_AND_DROP)
+
+dnl TODO: doesn't work yet
+WX_ARG_ENABLE(wxtree, [ --enable-wxtree make wxTree library], wxUSE_WXTREE)
+
+dnl ---------------------------------------------------------------------------
+dnl optional GUI controls (in alphabetical order except the first one)
+dnl ---------------------------------------------------------------------------
+
+WX_ARG_ENABLE(controls, [ --enable-controls use all usual controls], wxUSE_CONTROLS)
+
+dnl even with --enable-controls, some may be disabled by giving
+dnl --disable-<control> later on the command line - but by default all will be
+dnl used (and vice versa)
+if test "$wxUSE_CONTROLS" = "yes"; then
+ DEFAULT_wxUSE_ACCEL=yes
+ DEFAULT_wxUSE_CARET=yes
+ DEFAULT_wxUSE_COMBOBOX=yes
+ DEFAULT_wxUSE_BMPBUTTON=yes
+ DEFAULT_wxUSE_CHECKBOX=yes
+ DEFAULT_wxUSE_CHECKLISTBOX=yes
+ DEFAULT_wxUSE_GAUGE=yes
+ DEFAULT_wxUSE_GRID=yes
+ DEFAULT_wxUSE_IMAGLIST=yes
+ DEFAULT_wxUSE_LISTBOX=yes
+ DEFAULT_wxUSE_LISTCTRL=yes
+ DEFAULT_wxUSE_NOTEBOOK=yes
+ DEFAULT_wxUSE_RADIOBOX=yes
+ DEFAULT_wxUSE_RADIOBTN=yes
+ DEFAULT_wxUSE_SASH=yes
+ DEFAULT_wxUSE_SCROLLBAR=yes
+ DEFAULT_wxUSE_SLIDER=yes
+ DEFAULT_wxUSE_SPINBTN=yes
+ DEFAULT_wxUSE_SPLITTER=yes
+ DEFAULT_wxUSE_STATBMP=yes
+ DEFAULT_wxUSE_STATBOX=yes
+ DEFAULT_wxUSE_STATLINE=yes
+ DEFAULT_wxUSE_STATUSBAR=yes
+ DEFAULT_wxUSE_TAB_DIALOG=yes
+ DEFAULT_wxUSE_TOOLBAR=yes
+ DEFAULT_wxUSE_TOOLTIPS=yes
+ DEFAULT_wxUSE_TREECTRL=yes
+elif test "$wxUSE_CONTROLS" = "no"; then
+ DEFAULT_wxUSE_ACCEL=no
+ DEFAULT_wxUSE_CARET=no
+ DEFAULT_wxUSE_COMBOBOX=no
+ DEFAULT_wxUSE_BMPBUTTON=no
+ DEFAULT_wxUSE_CHECKBOX=no
+ DEFAULT_wxUSE_CHECKLISTBOX=no
+ DEFAULT_wxUSE_GAUGE=no
+ DEFAULT_wxUSE_GRID=no
+ DEFAULT_wxUSE_IMAGLIST=no
+ DEFAULT_wxUSE_LISTBOX=no
+ DEFAULT_wxUSE_LISTCTRL=no
+ DEFAULT_wxUSE_NOTEBOOK=no
+ DEFAULT_wxUSE_RADIOBOX=no
+ DEFAULT_wxUSE_RADIOBTN=no
+ DEFAULT_wxUSE_SASH=no
+ DEFAULT_wxUSE_SCROLLBAR=no
+ DEFAULT_wxUSE_SLIDER=no
+ DEFAULT_wxUSE_SPINBTN=no
+ DEFAULT_wxUSE_SPLITTER=no
+ DEFAULT_wxUSE_STATBMP=no
+ DEFAULT_wxUSE_STATBOX=no
+ DEFAULT_wxUSE_STATLINE=no
+ DEFAULT_wxUSE_STATUSBAR=no
+ DEFAULT_wxUSE_TAB_DIALOG=no
+ DEFAULT_wxUSE_TOOLBAR=no
+ DEFAULT_wxUSE_TOOLTIPS=no
+ DEFAULT_wxUSE_TREECTRL=no
+fi
+
+WX_ARG_ENABLE(accel, [ --enable-accel use accelerators], wxUSE_ACCEL)
+WX_ARG_ENABLE(caret, [ --enable-caret use wxCaret class], wxUSE_CARET)
+WX_ARG_ENABLE(bmpbutton, [ --enable-bmpbutton use wxBitmapButton class], wxUSE_BMPBUTTON)
+WX_ARG_ENABLE(checkbox, [ --enable-checkbox use wxCheckBox class], wxUSE_CHECKBOX)
+WX_ARG_ENABLE(checklst, [ --enable-checklst use wxCheckListBox (listbox with checkboxes) class], wxUSE_CHECKLST)
+WX_ARG_ENABLE(combobox, [ --enable-combobox use wxChoice and wxComboBox classes], wxUSE_COMBOBOX)
+WX_ARG_ENABLE(gauge, [ --enable-gauge use wxGauge class], wxUSE_GAUGE)
+WX_ARG_ENABLE(grid, [ --enable-grid use wxGrid class], wxUSE_GRID)
+WX_ARG_ENABLE(imaglist, [ --enable-imaglist use wxImageList class], wxUSE_IMAGLIST)
+WX_ARG_ENABLE(listbox, [ --enable-listbox use wxListBox class], wxUSE_LISTBOX)
+WX_ARG_ENABLE(listctrl, [ --enable-listctrl use wxListCtrl class], wxUSE_LISTCTRL)
+WX_ARG_ENABLE(notebook, [ --enable-notebook use wxNotebook class], wxUSE_NOTEBOOK)
+WX_ARG_ENABLE(radiobox, [ --enable-radiobox use wxRadioBox class], wxUSE_RADIOBOX)
+WX_ARG_ENABLE(radiobtn, [ --enable-radiobtn use wxRadioButton class], wxUSE_RADIOBTN)
+WX_ARG_ENABLE(sash, [ --enable-sash use wxSashWindow class], wxUSE_SASH)
+WX_ARG_ENABLE(scrollbar, [ --enable-scrollbar use wxScrollBar class and scrollable windows], wxUSE_SCROLLBAR)
+WX_ARG_ENABLE(slider, [ --enable-slider use wxSlider class], wxUSE_SLIDER)
+WX_ARG_ENABLE(spinbtn, [ --enable-spinbtn use wxSpinButton class], wxUSE_SPINBTN)
+WX_ARG_ENABLE(splitter, [ --enable-splitter use wxSplitterWindow class], wxUSE_SPLITTER)
+WX_ARG_ENABLE(statbmp, [ --enable-statbmp use wxStaticBitmap class], wxUSE_STATBMP)
+WX_ARG_ENABLE(statbox, [ --enable-statbox use wxStaticBox class], wxUSE_STATBOX)
+WX_ARG_ENABLE(statline, [ --enable-statline use wxStaticLine class], wxUSE_STATLINE)
+WX_ARG_ENABLE(statusbar, [ --enable-statusbar use wxStatusBar class], wxUSE_STATUSBAR)
+WX_ARG_ENABLE(tabdialog, [ --enable-tabdialog use wxTabControl class], wxUSE_TABDIALOG)
+WX_ARG_ENABLE(toolbar, [ --enable-toolbar use wxToolBar class], wxUSE_TOOLBAR)
+WX_ARG_ENABLE(treectrl, [ --enable-treectrl use wxTreeCtrl class], wxUSE_TREECTRL)
+
+dnl ---------------------------------------------------------------------------
+dnl misc GUI options
+dnl ---------------------------------------------------------------------------
+
+WX_ARG_ENABLE(commondlg, [ --enable-commondlg use common dialogs (wxDirDialog, wxProgressDialog, wxTextDialog, ...)], wxUSE_COMMONDLGS)
+WX_ARG_ENABLE(miniframe, [ --enable-miniframe use wxMiniFrame class], wxUSE_MINIFRAME)
+WX_ARG_ENABLE(tooltips, [ --enable-tooltips use wxToolTip class], wxUSE_TOOLTIPS)
+WX_ARG_ENABLE(splines, [ --enable-splines use spline drawing code], wxUSE_SPLINES)
+WX_ARG_ENABLE(validators, [ --enable-validators use wxValidator and derived classes], wxUSE_VALIDATORS)
+
+dnl cache the options values before (may be) aborting below
+WX_ARG_CACHE_FLUSH
+
+dnl check that no more than one toolkit is given and that if none are given that
+dnl we have a default one
+
+AC_MSG_CHECKING(for toolkit)
+
+if test "$TOOLKIT_GIVEN" = 1; then
+ dnl convert "yes" to 1 and "no" to 0
+ for toolkit in GTK MOTIF MSW WINE; do
+ var=wxUSE_$toolkit
+ eval "value=\$${var}"
+ eval "$var=`echo \$value | sed -e "s/yes/1/" -e "s/no/0/"`"
+ done
+else
+ dnl try to guess the most apropriate toolkit for this platform
+ for toolkit in GTK MOTIF MSW WINE; do
+ if test "$has_toolkit_in_cache" != 1; then
+ var=DEFAULT_DEFAULT_wxUSE_$toolkit
+ else
+ var=DEFAULT_wxUSE_$toolkit
+ fi
+ eval "wxUSE_$toolkit=\$${var}"
+ done
+fi