mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-04-18 21:44:02 +03:00
75 lines
2.8 KiB
Plaintext
75 lines
2.8 KiB
Plaintext
How it Works Now
|
|
----------------
|
|
|
|
There is a new toplevel directory called build. This contains a
|
|
couple of scripts and a couple of previously (as far as I can tell)
|
|
unmanaged files: Calpont.xml and Doxyfile. It also contains a
|
|
top-level Makefile and a rules.tmpl, which is a template rules file
|
|
for other makefiles to include. More on that later.
|
|
|
|
After doing an updateGenii.pl, you do the following from the top of
|
|
your development tree, which, more or less has to be genii in
|
|
conformance with updateGenii.pl. (I'm not particularly happy with what
|
|
we are doing with updateGenii.pl, but, it is the prevailing custom and
|
|
these changes assume its use).
|
|
|
|
0. cd $HOME/genii.
|
|
|
|
1. build/bootstrap
|
|
|
|
This does the following:
|
|
|
|
a. creates export/bin,lib,share,etc,include
|
|
|
|
b. Copies static elements into the export tree. Static elements
|
|
are things we use but either don't build or don't build
|
|
routinely. This includes Doxyfile, Calpont.xml and
|
|
net-snmp components.
|
|
|
|
c. Generates a rules.mak from build/build/rules.tmpl to pwd (which
|
|
is supposed to be the top of your development tree). rules.mak
|
|
includes shared variables used by many other makefiles, mostly
|
|
in install rules. In particular, it defines TOP, which is how
|
|
build processes find the export tree. Makefiles that use this
|
|
have a hard-coded path to rules.mak. These hard-coded paths can
|
|
be automatically reset via build/setmktop.
|
|
|
|
d. Runs make bootstrap for components that need to export headers.
|
|
bootstrap rules usually just copy LINCLUDES (headers that need
|
|
to be shared with other components) to export/include.
|
|
|
|
2. Now you can type make in the various component areas or use the
|
|
top-level Makefile installed by bootstrap.
|
|
|
|
The order specified in the buildbot configuration is:
|
|
|
|
a. utils
|
|
b. snmpd
|
|
c. oam
|
|
d. dbcon
|
|
--------------
|
|
e. emulator
|
|
f. mysql
|
|
g. exemgr
|
|
h. procmon
|
|
i. procmgr
|
|
|
|
3. There is a top-level build/Makefile to support development build
|
|
activities. It is not part of the formal nightly build. The
|
|
buildbot setup orchestrates component builds via component specific
|
|
builders. Developers may want to use this. cp build/Makefile
|
|
$HOME/genii or use make -f.
|
|
|
|
For example you can try make scratch to build everything including
|
|
test, coverage, etc., or make compile to just try the build part.
|
|
It's a simple makefile, you can read it if you want to.
|
|
|
|
4. Note that while we no longer install files into /usr/local/Calpont,
|
|
the old install targets are retained as the mechanism for copying
|
|
programs and libraries into the export tree. Install targets do
|
|
not operate on header files. This is taken care of by the
|
|
bootstrap target.
|
|
|
|
5. Following a build, a bunch of output products should be in
|
|
genii/export.
|