Skip to content
Snippets Groups Projects
mondriaan.mk 2.54 KiB
Newer Older
# Mondriaan global make settings.

# ==== Setup Mondriaan library settings ====
#
# These settings need to be set correctly for compilation to succeed!
#

# Absolute path of the directory which contains this file (included last in every Makefile in the subdirectories).
MONDRIAANHOMEDIR:= $(abspath $(dir $(lastword $(MAKEFILE_LIST))))

MONDRIAANCURRENTVERSION := 4.1
MONDRIAANMAJORVERSION := 4

# Gainbucket type must be either LIST or ARRAY
# ==== Matlab support ====
#
# To enable Matlab support, please uncomment the following line and insert the correct (global) Matlab home directory and the correct suffix to Matlab MEX files for your architecture.
#

#MATLABHOMEDIR := /usr/local/matlab
MEXSUFFIX := mexa64

# ==== PaToH support ====
#
# To enable PaToH support, please uncomment the following line and insert the correct (global) PaToH home directory.
#

#PATOHHOMEDIR := /usr/local/patoh

# ==== Compiler flags ====
# Debug/verbose, standard (default), performance flags.

CFLAGS := -DMONDRIAANVERSION=\"${MONDRIAANCURRENTVERSION}\" -DGAINBUCKET_${GAINBUCKET_TYPE}

#CFLAGS := ${CFLAGS} -Wall -Wextra -Wshadow -Wno-unused-parameter -ansi -pedantic -O2 -DTIME -DUNIX -DINFO -g
#CFLAGS := ${CFLAGS} -Wall -O2
CFLAGS := ${CFLAGS} -Wall -O3 -ffast-math -funroll-loops -fomit-frame-pointer -std=c99
#CFLAGS := ${CFLAGS} -Wall -O3 -pg -ffast-math -funroll-loops -std=c99


# ==== Standard compilation options (it should not be necessary to change these) ====
ifdef MONDRIAANHOMEDIR
MONDRIAANCOMPILEINFO := ==== Mondriaan ${MONDRIAANMAJORVERSION} version ${MONDRIAANCURRENTVERSION} ====
else
MONDRIAANCOMPILEINFO := !!!! The Mondriaan GLOBAL HOME DIRECTORY has not been set in mondriaan.mk! !!!!
endif

MONDRIAANINCLUDEDIR := ${MONDRIAANHOMEDIR}/src/include
MONDRIAANLIBDIR := ${MONDRIAANHOMEDIR}/src/lib

CC := gcc

CFLAGS := ${CFLAGS} -I${MONDRIAANINCLUDEDIR}

LIBS := -L${MONDRIAANLIBDIR} -lMondriaan${MONDRIAANMAJORVERSION}

# Matlab specific settings.
# Based on Peter Carbonetto's example Makefile for creating Matlab MEX executables.
ifdef MATLABHOMEDIR
MONDRIAANCOMPILEINFO := ${MONDRIAANCOMPILEINFO} + Matlab

CFLAGS := -DUSE_MATLAB -fPIC -pthread ${CFLAGS}

MEX := ${MATLABHOMEDIR}/bin/mex
MEXCFLAGS := ${CFLAGS} -fPIC -pthread -DMATLAB_MEX_FILE -I${MATLABHOMEDIR}/extern/include
MEXFLAGS := CC='${CC}' LD='${CC}' -cxx -largeArrayDims
endif

# PaToH specific settings.
ifdef PATOHHOMEDIR
MONDRIAANCOMPILEINFO := ${MONDRIAANCOMPILEINFO} + PaToH

CFLAGS := -DUSE_PATOH -I${PATOHHOMEDIR} ${CFLAGS}

LIBS := ${LIBS} -L${PATOHHOMEDIR} -lpatoh
endif

LIBS := ${LIBS} -lm