Salikh Zakirov wrote:
> The functionality for the cross-platform configuration is designed in the
> makefiles,
> however, the configuration itself is missing, and I need help from volunteers
> to bring
> this build system to a fully configured state.
Sorry, I've forgot to give the instructions to get started with make system.
After you have obtained the patches work tree (or applied HARMONY-4640), do the
following
$ cd drlvm/build
$ sh build.sh # this will build extras and create deploy
directory
$ make
After this, the only command needed to recompile native bits of DRLVM is 'make'.
The build configuration is distributed as follows:
build/Makefile contains the list of subcomponents (SUBDIRS)
each subdire contains a subcomponent Makefile, currently
vm/em/Makefile
vm/vmi/Makefile
vm/port/src/encoder/Makefile
vm/port/Makefile
vm/gc_cc/Makefile
vm/tests/unit/ulist/Makefile
vm/interpreter/Makefile
vm/gc_gen/Makefile
vm/thread/Makefile
vm/vmcore/Makefile
vm/jitrino/Makefile
Each makefile contains a build configuration of a component, in a sequence of
variable assignments of the form
SOURCES := $(wildcard src/*.cpp)
lnx_SOURCES := $(wildcard src/linux/*.cpp)
The available configuration are described in detail in comments in
build/makerules.inc, the list is
NAME, TYPE, SOURCES, DEFINES, INCLUDES, SODEPENDS, LIBDEPENDS, LIBS,
LIBDIRS, CFLAGS, CXXFLAGS, LDFLAGS
The available prefixes are
OSTAG = win | linux
ARCHTAG = ia32 | em64t | ipf
CFG = debug | release
and some combinations thereof. Grep for '$($(' in makerules.inc for details.
What is ultimately needed is to put the configuration for platforms other than
lnx/ia32 to the above Makefiles.