You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@harmony.apache.org by Salikh Zakirov <sa...@gmail.com> on 2007/08/16 13:33:35 UTC

Re: [drlvm][PATCH/RFC] GNU Make-based build system for DRLVM -- call for help

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.