# Building and running SDK Samples

> The eXtremeDB SDK samples are grouped according to API and to the components of your package. All of the necessary source code, tools and scripts are provided to make building and running these samples simple and easy. The build procedure will vary slightly depending on your development platform. Please follow the steps outlined below for your development environment.

> ## Unix-Linux build procedure

> For Unix-Linux packages, a makefile is provided in the installation root directory as well as in each sample sub-directory. The makefile has the following build targets:

> - `samples`: build all samples

> >         make samples

> - `clean`: Clean the directory tree. This command removes only intermediate files leaving the final products and build-logs intact.

> >         make clean

> - `distclean`: Total cleanup. This command removes all the intermediate files and directories; the final files and the build logs will be purged out of the directory tree.

> >         make distclean

> ### Compatibility with previous eXtremeDB versions

> For compatibility with eXtremeDB releases prior to version 8.0, the build system provides partial support for the major command line controls from the previous versions. The makefiles from eXtremeDB version 7.x need to be edited manually with the following changes:

> > 1. The `MCO_ROOT` variable must be set as an absolute path to the eXtremeDB root directory (this can be done using `$(abspath <path>)` or by manually specifying the root directory)

> > 2. The inclusion “`include/header.mak`” must be removed; instead specify “`include/settings.makefile`” just after the `MCO_ROOT` definition

> > 3. Include the line “`include/rules.makefile`” as the last line (after all other content)

> Note that the resulting makefile is not valid for parallel compilation (i.e. the “`-j`” option is not supported) and can be used only from the directory of the project (or sample).

> Following is an example of an edited makefile from eXtremeDB version 7.x for sample "`samples/native/core/08-benchmarks/perf-conv`":

>         # root directory of eXtremeDB installation
>         MCO_ROOT        := $(abspath ../../../../..)
>         include $(MCO_ROOT)/include/settings.makefile

>         PRJ_TYPE         = APP
>         PRJ_SHOW_BUILD   = AUTO
>         PRJ_TITLE        = 08-benchmarks-perf
>         PRJ_SIDE         = TARGET
>         PRJ_SOURCES      = main.c
>         PRJ_SCHEMAS      = perf.mco
>         PRJ_INTERFACES   =
>         PRJ_DBNAMES      = perf
>         PRJ_STORAGE     ?= MEMORY
>         PRJ_MEMDEV      ?= CONV
>         PRJ_STORAGEDEV   = NONE
>         PRJ_SYNC         = AUTO
>         PRJ_TRANSMGR    ?= MURSIW
>         PRJ_DIRECTPTR   ?= AUTO
>         PRJ_HA           = NONE
>         PRJ_RPC          = NONE
>         PRJ_F_CPP        = NO
>         PRJ_F_SQL        = NO
>         PRJ_F_LOG        = NO
>         PRJ_F_DBCALC     = NO
>         PRJ_F_UDA        = NO
>         PRJ_F_XML        = NO
>         PRJ_F_SERI       = NO
>         PRJ_F_HV         = NO
>         PRJ_F_CLUSTER    = NO
>         PRJ_RMFILES      =

>         # Common definitions
>         THIS_MAKEFILE := $(lastword $(MAKEFILE_LIST))
>         include $(MCO_ROOT)/include/rules.makefile

> ## Windows build procedure

> Windows packages are built for the specific version of Visual Studio requested in the purchase order. Solution files are provided in the installation root directory, and individual project files are provided in each sample directory according to the components of your package. The solution file can be opened directly in Visual Studio to build the individual sample projects or "Batch build" the entire group of projects.

> ## Native Language APIs

> Please use the following links to view specific instructions for the API of interest:

> C | C API samples
> C++ | C++ samples
> SQL | Embedded SQL API and xSQL
> Java | Java Native Interface (JNI) samples
> JDBC | JDBC samples
> C# | .NET Framework (C#) samples
> Python | Python API samples

> Related Topics