Python on Windows.
Once you have installed Bakefile, you can easily regenerate the makefiles using
-the makefile in $(wx)/build/bakefiles directory. The makefile uses Unix make
-syntax and works on Unix or using either Borland Make or GNU Make (including
-native Win32 port called mingw32-make from http://www.mingw.org) on Windows.
-It is possible that other Windows make utilities work as well, but it wasn't
-tested. "make clean" only works on Unix or Cygwin or MSYS emulation layer on
-Windows.
-
-You can use following commands when generating the makefiles (must be run from
-$(wx)/build/bakefiles directory):
-
-make <filename> generates one makefile (e.g. "make ../makefile.gcc")
-make all regenerates all makefiles that are out of date
-make library only makefiles for the main library
-make <compiler> only makefiles for given compiler; possible values
- are "borland", "watcom", "mingw", "autoconf", "msvc"
- and "mvsc6prj" (Visual C++ project files)
-make clean deletes all generated files (Unix shell only)
+the bakefile_gen tool. Run it from $(wx)/build/bakefiles directory and it will
+regenerate all outdated makefiles. See $(wx)/build/bakefiles/README for more
+details.
Note that it generates makefiles for samples and contrib libraries, too.
$(wx)/autoconf_inc.m4 content changed.
You can use Bakefile to generate makefiles or projects customized to your
-needs, too. See Makefile for details on bakefile commands used to generate
-makefiles. For example, you can use this command to generate VC++ project
-files without wxUniversal configurations (you can find needed flags in
-DSWFLAGS variable of build/bakefiles/Makefile):
+needs, too. See Bakefiles.bkgen for details on bakefile commands used to
+generate makefiles. For example, you can use this command to generate
+VC++ project files without wxUniversal configurations:
bakefile -v -fmsvc6prj -o../wxmy.dsw -DRUNTIME_LIBS=dynamic
-DDEBUG_INFO=default -DDEBUG_FLAG=default
-DOFFICIAL_BUILD=0 -DUSE_HTML=1 -DUSE_OPENGL=1 -DUSE_ODBC=1
common_samples.bkl
common_contrib.bkl - shared definitions and templates
config.bkl - user-configurable build options
+ make_dist.mk - implementation of "make dist" on Unix
Files used to build the library are:
wx.bkl - main file
that are required by the sample.
Run Python script regenMakefile.py in $(wx)/build/bakefiles to update Makefile
-and commit $(wx)/build/bakefiles/Makefile.
+then run "make" in $(wx)/build/bakefiles directories.
+
+Finally commit $(wx)/build/bakefiles/Makefile and all the other modified files.
5. Adding contrib library
Finally, define FOO_SRC and FOO_HDR to contain both
FOO_PLATFORM_{SRC,HDR} and FOO_{SRC,HDR} (see NET_SRC definition for an
example).
- * Add FOO_HDR to ALL_HEADERS
+ * Add FOO_HDR to ALL_GUI_HEADERS or ALL_BASE_HEADERS.
+ * If wxFoo is wxBase library (doesn't use GUI), add FOO_SRC to
+ ALL_BASE_SOURCES.
(You can apply different approaches to HDR and SRC variables, if e.g.
headers are all common but sources are not.)
native make tools.
b) Modify bakefile system in build/bakefiles/ to recognize wxFoo:
- * Add 'foo'to MAIN_LIBS and LIBS_NOGUI or LIBS_GUI (depending on whether
+ * 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 the library to DEPS_TABLE in wxwin.py
* Add WXLIB_FOO definition to common.bkl (into the "Names of component
libraries" section). It looks like this:
<set var="WXLIB_FOO">
#endif
Use WXDLLIMPEXP_FOO when declaring wxFoo classes and functions.
+h) Add this code to one of wxFoo's files (the more often used, the better):
+ // DLL options compatibility check:
+ #include "wx/app.h"
+ WX_CHECK_BUILD_OPTIONS("wxFoo")
+
i) Add information about wxFoo to the manual ("Libraries list" section
in libs.tex).