Changeset 406

Show
Ignore:
Timestamp:
07/02/09 22:16:09 (15 years ago)
Author:
smidl
Message:

Build system restructuring

Files:
5 modified
1 moved

Legend:

Unmodified
Added
Removed
  • applications/bdmtoolbox/CMakeLists.txt

    r391 r406  
     1# Matlab toolbox of functions from BDM 
     2 
     3cmake_minimum_required(VERSION 2.6) 
     4PROJECT(bdmtoolbox) 
     5 
     6# Link it to BDM 
     7SET(BDM_SOURCE_DIR "${CMAKE_SOURCE_DIR}/../../library") 
     8SET(CMAKE_MODULE_PATH "${BDM_SOURCE_DIR}/system") 
     9 
     10# Load BDM environment 
     11INCLUDE(SetBdmEnv) 
     12 
    113include_directories (${BDM_SOURCE_DIR}/bdm) 
    214link_directories (${BDM_BINARY_DIR}/bdm) 
  • applications/bdmtoolbox/mex/CMakeLists.txt

    r393 r406  
    11IF(MEX_COMPILER) 
    2  
    3 MACRO(MEX FN) 
    4         INCLUDE_DIRECTORIES(${MATLAB_INCLUDE_DIR} "${BDM_SOURCE_DIR}/bdm") 
    5         LINK_DIRECTORIES("${BDM_SOURCE_DIR}/bdm") 
    6         ADD_LIBRARY(${FN} MODULE ${FN}.cpp) 
    7         set_target_properties(${FN} PROPERTIES 
    8                 PREFIX "" 
    9                 SUFFIX  ".mexa64" 
    10         ) 
    11         TARGET_LINK_LIBRARIES(${FN} ${MATLAB_LIBRARIES} bdm itpp) 
    12 ENDMACRO(MEX) 
    132 
    143MEX(merger_mx) 
  • library/CMakeLists.txt

    r384 r406  
    1212set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}\\system\\") 
    1313 
    14 ###################### 
    15 #Platform specific 
    16 IF(WIN32) 
    17 # IF YOU WANT TO USE YOUR OWN INSTALLATION OF THE NEXT EXTERNAL LIBRARIES, 
    18 # THEN IT IS NECESSARY TO CREATE TEXT FILE "\system\WIN32\LOCAL_PATHS.TXT" WITH  
    19 # COPIES OF THE TWO FOLLOWING LINES AND THEN CORECT ALL THE INVOLVED PATHS 
    20         SET(ITPP_DIR "${BDM_SOURCE_DIR}\\system\\win32\\itpp-4.0.6") 
    21         SET(ACML_DIR "${BDM_SOURCE_DIR}\\system\\win32\\acml3.6.0") 
     14INCLUDE(SetBdmEnv) 
    2215 
    23         INCLUDE(\\system\\win32\\local_paths.txt OPTIONAL)       
    24         ADD_DEFINITIONS(-DHAVE_ACML) 
    25 ENDIF(WIN32) 
    26 IF(APPLE) 
    27         SET(ITPP_DIR "${BDM_SOURCE_DIR}\\macosx\\itpp-4.0.6") 
    28         FIND_LIBRARY(FRAMEWORK_VECLIB vecLib) 
    29         ADD_DEFINITIONS(-DHAVE_XLOCALE_H) 
    30 ENDIF(APPLE) 
    31 IF(UNIX) 
    32         #This is for UNIX makefile which does only one release at a time. 
    33         SET(CMAKE_BUILD_TYPE Debug) 
    34         SET(CMAKE_CXX_FLAGS "-Wall -pipe  -Wno-unknown-pragmas -fPIC") 
    35         SET(CMAKE_C_FLAGS "-Wall -pipe  -Wno-unknown-pragmas -fPIC") 
    36         SET(CMAKE_CXX_FLAGS_RELEASE " -DNDEBUG -O2") 
    37         SET(CMAKE_CXX_FLAGS_DEBUG "-g -O0") 
    38         #ADD_DEFINITIONS(-DNDEBUG) 
    39          
    40         SET(MATLAB_ROOT ~/bin/matlab2008a) 
    41         # MATLAB_ROOT can be setup in Local 
    42 ENDIF(UNIX) 
    43  
    44 # Local ettings should be written to file called CMakeLists.local 
    45 # Use this option for machine-specific options, such as prallel architectures 
    46 INCLUDE(CMakeLists.local OPTIONAL)       
    47  
    48 FIND_PACKAGE(ITPP REQUIRED) 
    49 FIND_PACKAGE(ACML COMPONENTS) 
    50 FIND_PACKAGE(Matlab COMPONENTS) 
    51 FIND_PROGRAM(MEX_COMPILER mex) 
    52  
    53 IF(ITPP_FOUND) 
    54         INCLUDE_DIRECTORIES(${ITPP_INCLUDE_DIR}) 
    55         LINK_DIRECTORIES(${NATIVE_ITPP_LIB_PATH}) 
    56 ENDIF(ITPP_FOUND) 
    57  
    58 IF(ACML_FOUND) 
    59         INCLUDE_DIRECTORIES(${ACML_INCLUDE_DIR}) 
    60         LINK_DIRECTORIES(${NATIVE_ACML_LIB_PATH}) 
    61 ENDIF(ACML_FOUND) 
    62  
    63 ## 
    64 ## PREPARE MACROS for building executables 
    65 ## 
    66  
    67 MACRO(EXEC FN) 
    68         add_executable (${FN} ${FN}.cpp) 
    69         IF(WIN32) 
    70                 target_link_libraries (${FN} debug itpp_debug) 
    71                 target_link_libraries (${FN} optimized itpp) 
    72                 target_link_libraries (${FN} libacml_dll) 
    73         ELSE(WIN32) 
    74                 IF(APPLE) 
    75                         target_link_libraries (${FN} ${FRAMEWORK_VECLIB}) 
    76                 ENDIF(APPLE) 
    77 #               target_link_libraries (${FN} itpp)       
    78                 target_link_libraries (${FN} debug itpp_debug) 
    79                 target_link_libraries (${FN} optimized itpp) 
    80         ENDIF(WIN32) 
    81         target_link_libraries (${FN} bdm) 
    82         target_link_libraries (${FN} ${ARGN}) ## Additional libraries can be added to a macro 
    83 ENDMACRO(EXEC) 
    84          
    85  
    86  
    87 # Recurse into the "dbm" and "tests" subdirectories.  This does not actually 
     16# Recurse into the "bdm" and "tests" subdirectories.  This does not actually 
    8817# cause another cmake executable to run.  The same process will walk through 
    8918# the project's entire directory structure. 
  • library/system/FindITPP.cmake

    r362 r406  
    4444ELSE (ITPP_FOUND) 
    4545   IF (ITPP_FIND_REQUIRED) 
    46       MESSAGE(FATAL_ERROR "Could not find ITPP library") 
     46      MESSAGE(FATAL_ERROR "Could not find ITPP library, make sure ITPP_DIR is properly set") 
    4747   ENDIF (ITPP_FIND_REQUIRED) 
    4848ENDIF (ITPP_FOUND) 
  • library/system/FindMatlab.cmake

    r357 r406  
    1 # - this module looks for Matlab 
     1# - This module looks for Matlab and associated development libraries 
    22# Defines: 
    33#  MATLAB_INCLUDE_DIR: include path for mex.h, engine.h 
    4 #  MATLAB_LIBRARIES:   required libraries: libmex, etc 
    5 #  MATLAB_MAT_LIBRARY: path to libmat.lib 
    6 #  MATLAB_MEX_LIBRARY: path to libmex.lib 
    7 #  MATLAB_MX_LIBRARY:  path to libmx.lib 
    8 #  MATLAB_ENG_LIBRARY: path to libeng.lib 
     4#  MATLAB_LIBRARIES:        required libraries: libmex, etc 
     5#  MATLAB_MEX_LIBRARY:      path to libmex.lib 
     6#  MATLAB_MX_LIBRARY:       path to libmx.lib 
     7#  MATLAB_ENG_LIBRARY:      path to libeng.lib 
     8#  MATLAB_MEX_VERSION_FILE: path to mexversion.rc or mexversion.c 
     9#  MATLAB_MEX_SUFFIX:       filename suffix for mex-files (e.g. '.mexglx' or '.mexw64') 
     10 
     11# This version modified by RW Penney, November 2008 
     12# $Revision: 27 $, $Date: 2008-12-22 11:47:45 +0000 (Mon, 22 Dec 2008) $ 
    913 
    1014 
    1115SET(MATLAB_FOUND 0) 
     16 
    1217IF(WIN32) 
    13   IF(${CMAKE_GENERATOR} MATCHES "Visual Studio .*" OR ${CMAKE_GENERATOR} MATCHES "NMake Makefiles") 
    14     SET(MATLAB_ROOT "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MathWorks\\MATLAB\\7.0;MATLABROOT]/extern/lib/win32/microsoft/") 
    15   ELSE(${CMAKE_GENERATOR} MATCHES "Visual Studio .*" OR ${CMAKE_GENERATOR} MATCHES "NMake Makefiles") 
    16       IF(${CMAKE_GENERATOR} MATCHES "Borland") 
    17         # Same here, there are also: bcc50 and bcc51 directories 
    18         SET(MATLAB_ROOT "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MathWorks\\MATLAB\\7.0;MATLABROOT]/extern/lib/win32/microsoft/bcc54") 
    19       ELSE(${CMAKE_GENERATOR} MATCHES "Borland") 
    20         MESSAGE(FATAL_ERROR "Generator not compatible: ${CMAKE_GENERATOR}") 
    21       ENDIF(${CMAKE_GENERATOR} MATCHES "Borland") 
    22   ENDIF(${CMAKE_GENERATOR} MATCHES "Visual Studio .*" OR ${CMAKE_GENERATOR} MATCHES "NMake Makefiles") 
    23   FIND_LIBRARY(MATLAB_MEX_LIBRARY 
    24     libmex 
    25     ${MATLAB_ROOT} 
    26     ) 
    27   FIND_LIBRARY(MATLAB_MX_LIBRARY 
    28     libmx 
    29     ${MATLAB_ROOT} 
    30     ) 
    31   FIND_LIBRARY(MATLAB_ENG_LIBRARY 
    32     libeng 
    33     ${MATLAB_ROOT} 
    34     ) 
    35   FIND_LIBRARY(MATLAB_MAT_LIBRARY 
    36     libmat 
    37     ${MATLAB_ROOT} 
    38     ) 
    3918 
    40   FIND_PATH(MATLAB_INCLUDE_DIR 
    41     "mex.h" 
    42     "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MathWorks\\MATLAB\\7.0;MATLABROOT]/extern/include" 
    43     ) 
    44 ELSE( WIN32 ) 
     19  FILE(GLOB _auto_matlab_prefixes "C:/Program Files/MATLAB*/R20*") 
     20 
     21  IF(CMAKE_SIZEOF_VOID_P EQUAL 4) 
     22    # Regular x86 
     23    SET(MATLAB_MEX_SUFFIX mexw32) 
     24    SET(_extern_arch "win32") 
     25  ELSE(CMAKE_SIZEOF_VOID_P EQUAL 4) 
     26    SET(MATLAB_MEX_SUFFIX mexw64) 
     27    SET(_extern_arch "win64") 
     28  ENDIF(CMAKE_SIZEOF_VOID_P EQUAL 4) 
     29 
     30  # Search for available compilers: 
     31  # (This would be neater using 'ELSEIF', but that isn't available until cmake-2.4.4) 
     32  IF(${CMAKE_GENERATOR} MATCHES "Visual Studio 6") 
     33    SET(_matlab_path_suffixes "extern/lib/${_extern_arch}/microsoft/msvc60" 
     34        "extern/lib/${_extern_arch}/microsoft") 
     35  ENDIF(${CMAKE_GENERATOR} MATCHES "Visual Studio 6") 
     36  IF(${CMAKE_GENERATOR} MATCHES "Visual Studio 7") 
     37    SET(_matlab_path_suffixes "extern/lib/${_extern_arch}/microsoft/msvc70" 
     38        "extern/lib/${_extern_arch}/microsoft") 
     39  ENDIF(${CMAKE_GENERATOR} MATCHES "Visual Studio 7") 
     40  IF(${CMAKE_GENERATOR} MATCHES "Visual Studio [891]*") 
     41    SET(_matlab_path_suffixes "extern/lib/${_extern_arch}/microsoft/msvc71" 
     42        "extern/lib/${_extern_arch}/microsoft") 
     43  ENDIF(${CMAKE_GENERATOR} MATCHES "Visual Studio [891]*") 
     44  IF(${CMAKE_GENERATOR} MATCHES "Borland") 
     45    SET(_matlab_path_suffixes "extern/lib/win32/microsoft/bcc54") 
     46  ENDIF(${CMAKE_GENERATOR} MATCHES "Borland") 
     47  IF(NOT _matlab_path_suffixes) 
     48    MESSAGE(FATAL_ERROR "Generator not compatible: ${CMAKE_GENERATOR}") 
     49  ENDIF(NOT _matlab_path_suffixes) 
     50 
     51  SET(_libmex_name "libmex") 
     52  SET(_libmx_name "libmx") 
     53  SET(_libeng_name "libeng") 
     54 
     55ELSE(WIN32) 
     56 
    4557  IF(NOT MATLAB_ROOT) 
    4658    IF($ENV{MATLAB_ROOT}) 
    4759      SET(MATLAB_ROOT $ENV{MATLAB_ROOT}) 
    4860    ELSE($ENV{MATLAB_ROOT}) 
    49       SET(MATLAB_ROOT /opt/matlab) 
     61      SET(MATLAB_ROOT "$ENV{HOME}/bin/matlab*") 
    5062    ENDIF($ENV{MATLAB_ROOT})     
    5163  ENDIF(NOT MATLAB_ROOT) 
     64 
     65  FILE(GLOB _auto_matlab_prefixes "/usr/local/matlab*" "/opt/matlab*" ${MATLAB_ROOT}) 
     66 
    5267  IF(CMAKE_SIZEOF_VOID_P EQUAL 4) 
    5368    # Regular x86 
    54     SET(MATLAB_SYS 
    55       ${MATLAB_ROOT}/bin/glnx86 
    56       ) 
     69    SET(_matlab_path_suffixes "bin/glnx86") 
     70    SET(MATLAB_MEX_SUFFIX mexglx) 
    5771  ELSE(CMAKE_SIZEOF_VOID_P EQUAL 4) 
    58     # AMD64: 
    59     SET(MATLAB_SYS 
    60       ${MATLAB_ROOT}/bin/glnxa64 
    61       ) 
     72    SET(_matlab_path_suffixes "bin/glnxa64") 
     73    SET(MATLAB_MEX_SUFFIX mexa64) 
    6274  ENDIF(CMAKE_SIZEOF_VOID_P EQUAL 4) 
    63   FIND_LIBRARY(MATLAB_MEX_LIBRARY 
    64     mex 
    65     ${MATLAB_SYS} 
    66     ) 
    67   FIND_LIBRARY(MATLAB_MX_LIBRARY 
    68     mx 
    69     ${MATLAB_SYS} 
    70     ) 
    71   FIND_LIBRARY(MATLAB_MAT_LIBRARY 
    72     mat 
    73     ${MATLAB_SYS} 
    74     ) 
    75   FIND_LIBRARY(MATLAB_ENG_LIBRARY 
    76     eng 
    77     ${MATLAB_SYS} 
    78     ) 
    79   FIND_PATH(MATLAB_INCLUDE_DIR 
    80     "mex.h" 
    81     ${MATLAB_ROOT}/extern/include 
    82     ) 
     75 
     76  SET(_libmex_name "mex") 
     77  SET(_libmx_name "mx") 
     78  SET(_libeng_name "eng") 
    8379 
    8480ENDIF(WIN32) 
    8581 
    86 # This is common to UNIX and Win32: 
     82 
     83SET(_matlab_path_prefixes 
     84  ${MATLAB_PATH_PREFIXES} 
     85  ${_auto_matlab_prefixes} 
     86  ${MATLAB_ROOT} 
     87) 
     88 
     89# Search for include-files & libraries using architecture-dependent paths: 
     90FOREACH(_matlab_prefix ${_matlab_path_prefixes}) 
     91  MESSAGE("searching ${_matlab_prefix}") 
     92  IF(NOT MATLAB_INCLUDE_DIR) 
     93    FIND_PATH(MATLAB_INCLUDE_DIR "mex.h" 
     94      ${_matlab_prefix}/extern/include) 
     95 
     96    IF(MATLAB_INCLUDE_DIR) 
     97      SET(MATLAB_ROOT ${_matlab_prefix} 
     98        CACHE PATH "Matlab installation directory") 
     99      IF(WIN32) 
     100        SET(MATLAB_MEX_VERSIONFILE "${_matlab_prefix}/extern/include/mexversion.rc") 
     101      ELSE(WIN32) 
     102        SET(MATLAB_MEX_VERSIONFILE "${_matlab_prefix}/extern/src/mexversion.c") 
     103      ENDIF(WIN32) 
     104    ENDIF(MATLAB_INCLUDE_DIR) 
     105  ENDIF(NOT MATLAB_INCLUDE_DIR) 
     106 
     107  FOREACH(_matlab_path_suffix ${_matlab_path_suffixes}) 
     108    SET(_matlab_libdir ${_matlab_prefix}/${_matlab_path_suffix}) 
     109    MESSAGE("Searching ${_matlab_prefix} ... ${_matlab_libdir}") 
     110    IF(NOT MATLAB_MEX_LIBRARY) 
     111      FIND_LIBRARY(MATLAB_MEX_LIBRARY ${_libmex_name} ${_matlab_libdir}) 
     112      FIND_LIBRARY(MATLAB_MX_LIBRARY ${_libmx_name} ${_matlab_libdir}) 
     113      FIND_LIBRARY(MATLAB_ENG_LIBRARY ${_libeng_name} ${_matlab_libdir}) 
     114    ENDIF(NOT MATLAB_MEX_LIBRARY) 
     115  ENDFOREACH(_matlab_path_suffix) 
     116ENDFOREACH(_matlab_prefix) 
     117 
    87118SET(MATLAB_LIBRARIES 
    88119  ${MATLAB_MEX_LIBRARY} 
     
    91122) 
    92123 
    93 IF(MATLAB_INCLUDE_DIR  
    94     AND MATLAB_MEX_LIBRARY  
    95     AND MATLAB_MAT_LIBRARY 
    96     AND MATLAB_ENG_LIBRARY 
    97     AND MATLAB_MX_LIBRARY) 
    98   SET(MATLAB_LIBRARIES ${MATLAB_MX_LIBRARY} ${MATLAB_MEX_LIBRARY} ${MATLAB_ENG_LIBRARY} ${MATLAB_MAT_LIBRARY}) 
    99 ENDIF(MATLAB_INCLUDE_DIR  
    100     AND MATLAB_MEX_LIBRARY  
    101     AND MATLAB_MAT_LIBRARY 
    102     AND MATLAB_ENG_LIBRARY 
    103     AND MATLAB_MX_LIBRARY) 
     124IF(MATLAB_INCLUDE_DIR AND MATLAB_LIBRARIES) 
     125  SET(MATLAB_FOUND 1) 
     126  MESSAGE(STATUS "Found Matlab arch ${MATLAB_MEX_SUFFIX} at ${MATLAB_INCLUDE_DIR}") 
     127ELSE(MATLAB_INCLUDE_DIR AND MATLAB_LIBRARIES) 
     128  MESSAGE(STATUS "Matlab not found") 
     129ENDIF(MATLAB_INCLUDE_DIR AND MATLAB_LIBRARIES) 
    104130 
    105131MARK_AS_ADVANCED( 
     132  MATLAB_LIBRARIES 
    106133  MATLAB_MEX_LIBRARY 
    107134  MATLAB_MX_LIBRARY 
    108135  MATLAB_ENG_LIBRARY 
    109136  MATLAB_INCLUDE_DIR 
    110   MATLAB_ROOT 
     137  MATLAB_MEX_SUFFIX 
     138  MATLAB_MEX_VERSIONFILE 
     139  MATLAB_FOUND 
    111140) 
    112141 
    113 INCLUDE(FindPackageHandleStandardArgs) 
    114 FIND_PACKAGE_HANDLE_STANDARD_ARGS(Matlab  
    115     MATLAB_INCLUDE_DIR  
    116     MATLAB_MEX_LIBRARY  
    117     MATLAB_MAT_LIBRARY 
    118     MATLAB_ENG_LIBRARY 
    119     MATLAB_MX_LIBRARY ) 
    120  
     142# vim: set ts=2 sw=2 et: 
  • library/system/SetBdmEnv.cmake

    r391 r406  
    1 # Compulsory line 
    2 cmake_minimum_required(VERSION 2.6) 
     1# This Module Sets CMake variables for BDM 
     2# Variable BDM_SOURCE_DIR must be set 
     3# 
     4# Other respected variables are 
     5# ITPP_DIR, ACML_DIR, MATLAB_ROOT 
     6# 
    37 
    4 SET(BDM_SOURCE_DIR "/home/smidl/work/git/mixpp/library") 
    5 SET(CMAKE_MODULE_PATH "${BDM_SOURCE_DIR}/system/") 
    6 SET(ITPP_DIR "${BDM_SOURCE_DIR}/system/linux/") 
     8IF(NOT BDM_SOURCE_DIR) 
     9      MESSAGE(FATAL_ERROR "BDM_SOURCE_DIR is not set!") 
     10ENDIF(NOT BDM_SOURCE_DIR) 
    711 
    8 #MESSAGE(${CMAKE_MODULE_PATH}) 
    9  
    10 # copy settings from library 
     12###################### 
     13#Platform specific 
    1114IF(WIN32) 
    1215# IF YOU WANT TO USE YOUR OWN INSTALLATION OF THE NEXT EXTERNAL LIBRARIES, 
    1316# THEN IT IS NECESSARY TO CREATE TEXT FILE "\system\WIN32\LOCAL_PATHS.TXT" WITH  
    1417# COPIES OF THE TWO FOLLOWING LINES AND THEN CORECT ALL THE INVOLVED PATHS 
    15         SET(ITPP_DIR "${BDM_SOURCE_DIR}\\system\\win32\\itpp-4.0.6") 
    16         SET(ACML_DIR "${BDM_SOURCE_DIR}\\system\\win32\\acml3.6.0") 
    17  
     18        IF(NOT ITPP_DIR) 
     19                SET(ITPP_DIR "${BDM_SOURCE_DIR}\\system\\win32\\itpp-4.0.6") 
     20        ENDIF(NOT ITPP_DIR) 
     21        IF(NOT ACML_DIR) 
     22                SET(ACML_DIR "${BDM_SOURCE_DIR}\\system\\win32\\acml3.6.0") 
     23        ENDIF(NOT ACML_DIR) 
     24         
    1825        INCLUDE(\\system\\win32\\local_paths.txt OPTIONAL)       
    1926        ADD_DEFINITIONS(-DHAVE_ACML) 
    2027ENDIF(WIN32) 
    2128IF(APPLE) 
    22         SET(ITPP_DIR "${BDM_SOURCE_DIR}\\macosx\\itpp-4.0.6") 
     29        IF(NOT ITPP_DIR) 
     30                SET(ITPP_DIR "${BDM_SOURCE_DIR}/macosx/itpp-4.0.6") 
     31        ENDIF(NOT ITPP_DIR) 
    2332        FIND_LIBRARY(FRAMEWORK_VECLIB vecLib) 
    2433        ADD_DEFINITIONS(-DHAVE_XLOCALE_H) 
    2534ENDIF(APPLE) 
    2635IF(UNIX) 
     36        # Generally this directory should not exist! 
     37        # Use this location is you compile itpp from sources 
     38        IF(NOT ITPP_DIR) 
     39                SET(ITPP_DIR "${BDM_SOURCE_DIR}/system/linux/") 
     40        ENDIF(NOT ITPP_DIR) 
    2741        #This is for UNIX makefile which does only one release at a time. 
    28         SET(CMAKE_BUILD_TYPE Debug) 
    29         SET(CMAKE_CXX_FLAGS "-Wall -pipe  -Wno-unknown-pragmas -fPIC") 
    30         SET(CMAKE_C_FLAGS "-Wall -pipe  -Wno-unknown-pragmas -fPIC") 
    31         SET(CMAKE_CXX_FLAGS_RELEASE " -DNDEBUG -O2") 
    32         SET(CMAKE_CXX_FLAGS_DEBUG "-g -O0") 
    33         #ADD_DEFINITIONS(-DNDEBUG) 
    34          
    35         SET(MATLAB_ROOT ~/bin/matlab2008a) 
    36         # MATLAB_ROOT can be setup in Local 
    3742ENDIF(UNIX) 
    3843 
     
    5560        LINK_DIRECTORIES(${NATIVE_ACML_LIB_PATH}) 
    5661ENDIF(ACML_FOUND) 
     62 
     63IF(UNIX) 
     64        SET(CMAKE_BUILD_TYPE Debug) 
     65        IF(MATLAB_FOUND) 
     66                SET(CMAKE_CXX_FLAGS "-Wall -pipe  -Wno-unknown-pragmas -fPIC") 
     67                SET(CMAKE_C_FLAGS "-Wall -pipe  -Wno-unknown-pragmas -fPIC") 
     68        ELSE(MATLAB_FOUND) 
     69                SET(CMAKE_CXX_FLAGS "-Wall -Wno-unknown-pragmas ") 
     70                SET(CMAKE_C_FLAGS "-Wall -Wno-unknown-pragmas ") 
     71        ENDIF(MATLAB_FOUND) 
     72         
     73        SET(CMAKE_CXX_FLAGS_RELEASE " -DNDEBUG -O2") 
     74        SET(CMAKE_CXX_FLAGS_DEBUG "-g -O0") 
     75ENDIF(UNIX) 
    5776 
    5877## 
     
    7897ENDMACRO(EXEC) 
    7998         
    80  
    81 add_subdirectory (pmsm) 
    82 add_subdirectory (mpdm) 
    83 add_subdirectory (doprava) 
    84 add_subdirectory (bdmtoolbox) 
     99MACRO(MEX FN) 
     100        INCLUDE_DIRECTORIES(${MATLAB_INCLUDE_DIR} "${BDM_SOURCE_DIR}/bdm") 
     101        LINK_DIRECTORIES("${BDM_SOURCE_DIR}/bdm") 
     102        ADD_LIBRARY(${FN} MODULE ${FN}.cpp) 
     103        set_target_properties(${FN} PROPERTIES 
     104                PREFIX "" 
     105                SUFFIX  ${MATLAB_MEX_SUFFIX} 
     106        ) 
     107        TARGET_LINK_LIBRARIES(${FN} ${MATLAB_LIBRARIES} bdm itpp) 
     108ENDMACRO(MEX)