regenerate all outdated makefiles. See $(wx)/build/bakefiles/README for more
details.
-Note that it generates makefiles for samples and contrib libraries, too.
+Note that it generates makefiles for samples, too.
IMPORTANT NOTE: Don't forget to run autoconf in wxWidgets root directory
(after running Bakefile) if you changed any conditional
2. Bakefile files organization
------------------------------
-Makefile are generated from .bkl files ("bakefiles") from three places:
+Makefile are generated from .bkl files ("bakefiles") from two places:
- $(wx)/build/bakefiles directory
- - $(wx)/contrib/build/* directories
- samples directories
$(wx)/build/bakefiles contains bakefiles for main library and support files
-that simplify writing bakefiles for contrib and samples.
+that simplify writing bakefiles for samples.
Support files are:
wxwin.py - helper functions
common.bkl
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
Make sure to add <wx-lib> statements for all libraries from multilib build
that are required by the sample.
-Run bakefile_gen in $(wx)/build/bakefiles to regenerate the bakefiles.
-
-Finally commit $(wx)/build/bakefiles/Makefile and all the other modified files.
+The Windows resource specification should use the central .rc file:
+ <win32-res>../sample.rc</win32-res>
-5. Adding contrib library
--------------------------
-
-Contrib library bakefiles are located in $(wx)/contrib/build/name-of-contrib
-directory, together with generated makefiles. Copy the bakefile from another
-contrib library, change the IDs and files accordingly. Note that there must be
-two targets for contrib wxFoo: foodll and foolib.
+Run bakefile_gen in $(wx)/build/bakefiles to regenerate the bakefiles.
-foodll definition must contain <wx-lib> statements for all libraries it
-depends on. WXUSINGDLL and WXMAKINGDLL_FOO must be defined and symbols from
-the library should use WXDLLIMPEXP_FOO defined in wxFoo's headers analogically
-to WXDLLIMPEXP_{BASE,CORE,HTML,...} in the main library (see 5g below for
-additional details).
+Finally commit $(wx)/build/bakefiles/make_dist.mk and all the other modified files.
-Run bakefile_gen in $(wx)/build/bakefiles to regenerate makefiles
-then commit $(wx)/build/bakefiles/Makefile.
+Currently we commit the generated makefiles except .dms, .vcp.
-6. Adding new core library
+5. Adding new core library
--------------------------
When adding new library to the core set of libraries, the files must be
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_GUI_HEADERS or ALL_BASE_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.
f) Update configure.in and wx-config.in to contain information about
the library and needed linker flags:
- * Add "foo" to either CORE_BASE_LIBS or CORE_GUI_LIBS in configure.in so
- that wxFoo is not treated as contrib library in monolithic build.
+ * Add "foo" to either STD_BASE_LIBS or STD_GUI_LIBS in configure.in.
* If wxFoo links against additional libraries, add necessary linker
flags and libraries to ldflags_foo and ldlibs_foo variables in
wx-config.in (both are optional).
#define WXDLLIMPEXP_NET
#define WXDLLIMPEXP_DATA_NET(type) type
#endif
+ Don't forget to add WXDLLIMPEXP_FWD_FOO definitions too.
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):