Commit 39d7363d authored by Praetorius, Simon's avatar Praetorius, Simon

Merge branch 'feature/debian_package' into 'master'

Feature/debian package

See merge request !20
parents c39480e2 80714787
......@@ -5,7 +5,6 @@ stages:
- build
- demo
- test
- package
# compile amdis
......@@ -19,7 +18,7 @@ build:9-debug-gcc:
name: "$CI_BUILD_NAME"
expire_in: 6 hrs
only:
- develop
- master
build:9-release-gcc:
stage: build
......@@ -31,7 +30,7 @@ build:9-release-gcc:
name: "$CI_BUILD_NAME"
expire_in: 6 hrs
only:
- develop
- master
build:9-parallel-debug-gcc:
stage: build
......@@ -43,7 +42,7 @@ build:9-parallel-debug-gcc:
name: "$CI_BUILD_NAME"
expire_in: 6 hrs
only:
- develop
- master
build:9-parallel-release-gcc:
stage: build
......@@ -55,7 +54,7 @@ build:9-parallel-release-gcc:
name: "$CI_BUILD_NAME"
expire_in: 6 hrs
only:
- develop
- master
# compile the demos
......@@ -66,7 +65,7 @@ demo:9-debug-gcc:
dependencies:
- build:9-debug-gcc
only:
- develop
- master
demo:9-release-gcc:
stage: demo
......@@ -75,7 +74,7 @@ demo:9-release-gcc:
dependencies:
- build:9-release-gcc
only:
- develop
- master
demo:9-parallel-debug-gcc:
stage: demo
......@@ -84,7 +83,7 @@ demo:9-parallel-debug-gcc:
dependencies:
- build:9-parallel-debug-gcc
only:
- develop
- master
demo:9-parallel-release-gcc:
stage: demo
......@@ -93,7 +92,7 @@ demo:9-parallel-release-gcc:
dependencies:
- build:9-parallel-release-gcc
only:
- develop
- master
# compiel and run the tests
......@@ -104,7 +103,7 @@ test:9-debug-gcc:
dependencies:
- build:9-debug-gcc
only:
- develop
- master
test:9-release-gcc:
stage: test
......@@ -113,7 +112,7 @@ test:9-release-gcc:
dependencies:
- build:9-release-gcc
only:
- develop
- master
test:9-parallel-debug-gcc:
stage: test
......@@ -122,7 +121,7 @@ test:9-parallel-debug-gcc:
dependencies:
- build:9-parallel-debug-gcc
only:
- develop
- master
test:9-parallel-release-gcc:
stage: test
......@@ -131,47 +130,4 @@ test:9-parallel-release-gcc:
dependencies:
- build:9-parallel-release-gcc
only:
- develop
# compiel and run the tests
package:9-debug-gcc:
stage: package
script:
- cmake -DCONFIG=Debug -DCOMPONENT=SEQUENTIAL -P tools/packaging/debian/create_package.cmake
artifacts:
paths:
- debian_package/amdis-dbg/amdis*.deb
only:
- master
package:9-release-gcc:
stage: package
script:
- cmake -DCONFIG=Release -DCOMPONENT=SEQUENTIAL -P tools/packaging/debian/create_package.cmake
artifacts:
paths:
- debian_package/amdis/amdis*.deb
only:
- master
package:9-parallel-debug-gcc:
stage: package
script:
- cmake -DCONFIG=Debug -DCOMPONENT=PARALLEL -P tools/packaging/debian/create_package.cmake
artifacts:
paths:
- debian_package/amdis-dbg/amdis-par-dbg*.deb
only:
- master
package:9-parallel-release-gcc:
stage: package
script:
- cmake -DCONFIG=Release -DCOMPONENT=PARALLEL -P tools/packaging/debian/create_package.cmake
artifacts:
paths:
- debian_package/amdis-dbg/amdis-par*.deb
only:
- master
......@@ -8,8 +8,8 @@ set(BASE_DIR ${AMDiS_SOURCE_DIR})
set(SOURCE_DIR ${BASE_DIR}/src)
if (NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Debug CACHE STRING
"Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel."
set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING
"Choose the type of build, options are: None Debug Release [RelWithDebInfo] MinSizeRel."
FORCE)
endif ()
......
......@@ -243,6 +243,7 @@ endforeach ()
file(GLOB CMAKE_MACROS "${BASE_DIR}/cmake/enable_*.cmake")
install(FILES ${CMAKE_MACROS} DESTINATION share/amdis/)
install(FILES ${BASE_DIR}/cmake3/parse_zoltan_makefile.cmake DESTINATION share/amdis/)
install(DIRECTORY ${BASE_DIR}/lib/mtl4/ DESTINATION include/amdis/mtl4/
FILES_MATCHING PATTERN "*.hpp"
......
......@@ -61,7 +61,8 @@ macro(enable_petsc _FLAGS_ _INC_DIRS_ _LIBS_)
# if not valid, search again
if (NOT PETSC_VALID)
find_package(PETSc REQUIRED)
message(WARNING " ---> pkg-config of PETSc is broken!")
find_package(PETSc REQUIRED CXX)
set(PETSC_INCLUDE_DIRS ${PETSC_INCLUDES})
set(PETSC_LIBRARY_DIRS ${PETSC_LIB_DIR})
message(STATUS " Found PETSc, version ${PETSC_VERSION}")
......
......@@ -9,12 +9,21 @@ macro(enable_png _FLAGS_ _INC_DIRS_ _LIBS_)
HINTS ENV CPATH /usr/include
DOC "headerfile png.h for PNG-READER")
if (_PNG_H)
get_filename_component(PNG_PATH ${_PNG_H} PATH)
list(APPEND ${_INC_DIRS_} ${PNG_PATH})
else()
if (NOT _PNG_H)
message(FATAL_ERROR "Could not find the PNG header png.h.")
endif()
else ()
file(STRINGS ${_PNG_H} PNG_VERSION_LINE REGEX "#define PNG_LIBPNG_VER_STRING")
string(REGEX MATCH "\"([0-9]+[.][0-9]+([.][0-9]+)?)\"" PNG_VERSION_LINE ${PNG_VERSION_LINE})
set(PNG_VERSION ${CMAKE_MATCH_1})
message(STATUS "Libpng version: ${PNG_VERSION}")
if (NOT PNG_VERSION VERSION_LESS "1.6" OR NOT PNG_VERSION VERSION_GREATER "1.2")
message(FATAL_ERROR "Incompatible libpng version. Requires 1.2.x")
endif ()
endif ()
get_filename_component(PNG_PATH ${_PNG_H} PATH)
list(APPEND ${_INC_DIRS_} ${PNG_PATH})
if (LINK_EXECUTABLE)
find_library(_PNG_LIB png
......
include(parse_zoltan_makefile)
macro(enable_zoltan _FLAGS_ _INC_DIRS_ _LIBS_)
if (${ARGC} GREATER 3)
set(LINK_EXECUTABLE ON)
......@@ -5,22 +6,55 @@ macro(enable_zoltan _FLAGS_ _INC_DIRS_ _LIBS_)
set(LINK_EXECUTABLE OFF)
endif ()
find_file(ZOLTAN_HEADER_FILE "zoltan_cpp.h" HINTS ${ZOLTAN_DIR}/include ${PETSC_INCLUDE_DIRS})
if (ZOLTAN_HEADER_FILE)
get_filename_component(ZOLTAN_HEADER_DIR "${ZOLTAN_HEADER_FILE}" PATH CACHE)
list(APPEND ${_INC_DIRS_} ${ZOLTAN_HEADER_DIR})
else()
message(FATAL_ERROR "Could not find Zoltan include file 'zoltan_cpp.h'!")
endif(ZOLTAN_HEADER_FILE)
find_package(Zoltan QUIET)
if (Zoltan_FOUND)
find_file(ZOLTAN_HEADER_FILE "zoltan.h" PATHS ${Zoltan_INCLUDE_DIRS})
list(APPEND ${_INC_DIRS_} ${Zoltan_INCLUDE_DIRS})
if (LINK_EXECUTABLE)
foreach (LIB_NAME ${Zoltan_LIBRARIES})
find_library(_ZOLTAN_LIB ${LIB_NAME} HINTS ${Zoltan_LIBRARY_DIRS})
if (NOT _ZOLTAN_LIB)
message(FATAL_ERROR "Could not find library \"${LIB_NAME}\" in directories ${Zoltan_LIBRARY_DIRS}!")
else ()
list(APPEND ${_LIBS_} ${_ZOLTAN_LIB})
endif ()
unset(_ZOLTAN_LIB CACHE)
endforeach(LIB_NAME)
endif (LINK_EXECUTABLE)
else (Zoltan_FOUND)
find_file(ZOLTAN_HEADER_FILE "zoltan.h" HINTS ${ZOLTAN_DIR}/include ${PETSC_INCLUDE_DIRS})
if (ZOLTAN_HEADER_FILE)
get_filename_component(ZOLTAN_HEADER_DIR "${ZOLTAN_HEADER_FILE}" PATH CACHE)
list(APPEND ${_INC_DIRS_} ${ZOLTAN_HEADER_DIR})
else()
message(FATAL_ERROR "Could not find Zoltan include file 'zoltan_cpp.h'!")
endif(ZOLTAN_HEADER_FILE)
if (LINK_EXECUTABLE)
find_library(ZOLTAN_LIB zoltan
HINTS ENV LIBRARY_PATH DOC "Full path to the zoltan library")
if (NOT ZOLTAN_LIB)
message(FATAL_ERROR "Could not find zoltan library!")
endif (NOT ZOLTAN_LIB)
list(APPEND ${_LIBS_} ${ZOLTAN_LIB})
if (LINK_EXECUTABLE)
find_library(ZOLTAN_LIB zoltan
HINTS ENV LIBRARY_PATH DOC "Full path to the zoltan library")
if (NOT ZOLTAN_LIB)
message(FATAL_ERROR "Could not find zoltan library!")
endif (NOT ZOLTAN_LIB)
list(APPEND ${_LIBS_} ${ZOLTAN_LIB})
endif (LINK_EXECUTABLE)
find_file(ZOLTAN_CONFIG_FILE "Makefile.export.zoltan" HINTS ${ZOLTAN_HEADER_DIR})
if (ZOLTAN_CONFIG_FILE)
parse_zoltan_makefile(${ZOLTAN_CONFIG_FILE} ${_TARGET_} ${_SCOPE_})
else ()
message(WARNING "Zoltan configuration file Makefile.export.zoltan not found!")
endif ()
endif (LINK_EXECUTABLE)
endif (Zoltan_FOUND)
if (ZOLTAN_HEADER_FILE)
file(STRINGS ${ZOLTAN_HEADER_FILE} ZOLTAN_VERSION_LINE REGEX "#define ZOLTAN_VERSION_NUMBER")
string(REGEX MATCH "([0-9]+[.][0-9]+)" ZOLTAN_VERSION_REGEX ${ZOLTAN_VERSION_LINE})
set(ZOLTAN_VERSION ${CMAKE_MATCH_1})
unset(ZOLTAN_HEADER_FILE CACHE)
message(STATUS "Zoltan version: ${ZOLTAN_VERSION}")
endif (ZOLTAN_HEADER_FILE)
list(APPEND ${_FLAGS_} "-DHAVE_ZOLTAN=1")
endmacro(enable_zoltan)
macro(parse_zoltan_makefile _FILE_ _LIBS_)
file(STRINGS ${_FILE_} ZOLTAN_MAKEFILE_LINE REGEX "ZOLTAN_EXTRA_LIBS")
get_filename_component(ZOLTAN_MAKEFILE_DIR "${ZOLTAN_MAKEFILE}" PATH CACHE)
string(STRIP "${ZOLTAN_MAKEFILE_LINE}" LINE)
if ("${LINE}" MATCHES "^ZOLTAN_EXTRA_LIBS[ ]*=[ ]*([a-zA-Z0-9_/. -]+)$")
string(REGEX REPLACE " " ";" ZOLTAN_EXTRA_LIBS_LIST "${CMAKE_MATCH_1}")
set(ZOLTAN_LIB_DIRS "")
foreach(LIBS ${ZOLTAN_EXTRA_LIBS_LIST})
string(STRIP "${LIBS}" LIBS)
string(SUBSTRING "${LIBS}" 0 2 LIB_PREFIX)
string(SUBSTRING "${LIBS}" 2 -1 LIB_NAME)
if ("${LIB_PREFIX}" STREQUAL "-L")
list(APPEND ZOLTAN_LIB_DIRS ${LIB_NAME})
elseif ("${LIB_PREFIX}" STREQUAL "-l")
find_library(_ZOLTAN_EXTERN_LIB ${LIB_NAME} HINTS ${ZOLTAN_LIB_DIRS})
if (NOT _ZOLTAN_EXTERN_LIB)
message(FATAL_ERROR "Could not find library \"${LIB_NAME}\" in directories ${ZOLTAN_LIB_DIRS}!")
else ()
list(APPEND ${_LIBS_} ${_ZOLTAN_EXTERN_LIB})
endif ()
unset(_ZOLTAN_EXTERN_LIB CACHE)
else ()
message(WARNING "Unknown link parameter \"${LIBS}\"")
endif ()
endforeach (LIBS)
endif()
endmacro(parse_zoltan_makefile)
......@@ -181,6 +181,9 @@ endif (AMDIS_HAS_PARALLEL_DOMAIN)
# Zoltan library
# --------------
if (AMDIS_NEED_ZOLTAN)
if (NOT DEFINED ZOLTAN_DIR)
set(ZOLTAN_DIR "@ZOLTAN_DIR@")
endif ()
target_enable_zoltan(amdis_base INTERFACE ON)
endif ()
......
......@@ -210,6 +210,7 @@ endforeach ()
file(GLOB CMAKE_MACROS "${BASE_DIR}/cmake3/target_enable_*.cmake")
install(FILES ${CMAKE_MACROS} DESTINATION share/amdis/)
install(FILES ${BASE_DIR}/cmake3/parse_zoltan_makefile.cmake DESTINATION share/amdis/)
install(DIRECTORY ${BASE_DIR}/lib/mtl4/ DESTINATION include/amdis/mtl4/
FILES_MATCHING PATTERN "*.hpp"
......
macro(parse_zoltan_makefile _FILE_ _TARGET_ _SCOPE_)
# parse zoltan extra libs AND ld flags
file(STRINGS ${_FILE_} ZOLTAN_EXTRA_LIBS_LINE REGEX "ZOLTAN_EXTRA_LIBS")
file(STRINGS ${_FILE_} ZOLTAN_LDFLAGS_LINE REGEX "ZOLTAN_LDFLAGS")
get_filename_component(ZOLTAN_MAKEFILE_DIR "${ZOLTAN_MAKEFILE}" PATH CACHE)
string(STRIP "${ZOLTAN_EXTRA_LIBS_LINE}" ZOLTAN_EXTRA_LIBS_LINE)
string(STRIP "${ZOLTAN_LDFLAGS_LINE}" ZOLTAN_LDFLAGS_LINE)
if ("${ZOLTAN_EXTRA_LIBS_LINE}" MATCHES "^ZOLTAN_EXTRA_LIBS[ ]*=[ ]*([a-zA-Z0-9_/. -]+)*$")
string(REGEX REPLACE " " ";" ZOLTAN_EXTRA_LIBS_LIST "${CMAKE_MATCH_1}")
if ("${ZOLTAN_LDFLAGS_LINE}" MATCHES "^ZOLTAN_LDFLAGS[ ]*=[ ]*([a-zA-Z0-9_/. -]+)*$")
string(REGEX REPLACE " " ";" ZOLTAN_LDFLAGS_LIST "${CMAKE_MATCH_1}")
set(COMBINED_LIST ${ZOLTAN_LDFLAGS_LIST} ${ZOLTAN_EXTRA_LIBS_LIST})
set(ZOLTAN_LIB_DIRS "")
foreach(LIBS ${COMBINED_LIST})
string(STRIP "${LIBS}" LIBS)
string(SUBSTRING "${LIBS}" 0 2 LIB_PREFIX)
string(SUBSTRING "${LIBS}" 2 -1 LIB_NAME)
if ("${LIB_PREFIX}" STREQUAL "-L")
list(APPEND ZOLTAN_LIB_DIRS ${LIB_NAME})
elseif ("${LIB_PREFIX}" STREQUAL "-l")
find_library(_ZOLTAN_EXTERN_LIB ${LIB_NAME} HINTS ${ZOLTAN_LIB_DIRS})
if (NOT _ZOLTAN_EXTERN_LIB)
message(FATAL_ERROR "Could not find library \"${LIB_NAME}\" in directories ${ZOLTAN_LIB_DIRS}!")
else ()
target_link_libraries(${_TARGET_} ${_SCOPE_} ${_ZOLTAN_EXTERN_LIB})
endif ()
unset(_ZOLTAN_EXTERN_LIB CACHE)
else ()
message(WARNING "Unknown link parameter \"${LIBS}\"")
endif ()
endforeach (LIBS)
endif()
endif()
endmacro(parse_zoltan_makefile)
......@@ -61,7 +61,8 @@ macro(target_enable_petsc _TARGET_ _SCOPE_)
# if not valid, search again
if (NOT PETSC_VALID)
find_package(PETSc REQUIRED)
message(WARNING " ---> pkg-config of PETSc is broken!")
find_package(PETSc REQUIRED CXX)
set(PETSC_INCLUDE_DIRS ${PETSC_INCLUDES})
set(PETSC_LIBRARY_DIRS ${PETSC_LIB_DIR})
message(STATUS " Found PETSc, version ${PETSC_VERSION}")
......
......@@ -9,12 +9,21 @@ macro(target_enable_png _TARGET_ _SCOPE_)
HINTS ENV CPATH /usr/include
DOC "headerfile png.h for PNG-READER")
if (_PNG_H)
get_filename_component(PNG_PATH ${_PNG_H} PATH)
target_include_directories(${_TARGET_} ${_SCOPE_} ${PNG_PATH})
else()
if (NOT _PNG_H)
message(FATAL_ERROR "Could not find the PNG header png.h.")
endif()
else ()
file(STRINGS ${_PNG_H} PNG_VERSION_LINE REGEX "#define PNG_LIBPNG_VER_STRING")
string(REGEX MATCH "\"([0-9]+[.][0-9]+([.][0-9]+)?)\"" PNG_VERSION_LINE ${PNG_VERSION_LINE})
set(PNG_VERSION ${CMAKE_MATCH_1})
message(STATUS "Libpng version: ${PNG_VERSION}")
if (NOT PNG_VERSION VERSION_LESS "1.6" OR NOT PNG_VERSION VERSION_GREATER "1.2")
message(FATAL_ERROR "Incompatible libpng version. Requires 1.2.x")
endif ()
endif ()
get_filename_component(PNG_PATH ${_PNG_H} PATH)
target_include_directories(${_TARGET_} ${_SCOPE_} ${PNG_PATH})
if (LINK_EXECUTABLE)
find_library(_PNG_LIB png
......
include(parse_zoltan_makefile)
macro(target_enable_zoltan _TARGET_ _SCOPE_)
if (${ARGC} GREATER 2)
set(LINK_EXECUTABLE ON)
......@@ -5,22 +6,55 @@ macro(target_enable_zoltan _TARGET_ _SCOPE_)
set(LINK_EXECUTABLE OFF)
endif ()
find_file(ZOLTAN_HEADER_FILE "zoltan_cpp.h" HINTS ${ZOLTAN_DIR}/include ${PETSC_INCLUDE_DIRS})
if (ZOLTAN_HEADER_FILE)
get_filename_component(ZOLTAN_HEADER_DIR "${ZOLTAN_HEADER_FILE}" PATH CACHE)
target_include_directories(${_TARGET_} ${_SCOPE_} ${ZOLTAN_HEADER_DIR})
else()
message(FATAL_ERROR "Could not find Zoltan include file 'zoltan_cpp.h'!")
endif(ZOLTAN_HEADER_FILE)
find_package(Zoltan QUIET)
if (Zoltan_FOUND)
find_file(ZOLTAN_HEADER_FILE "zoltan.h" PATHS ${Zoltan_INCLUDE_DIRS})
target_include_directories(${_TARGET_} ${_SCOPE_} ${Zoltan_INCLUDE_DIRS})
if (LINK_EXECUTABLE)
foreach (LIB_NAME ${Zoltan_LIBRARIES})
find_library(_ZOLTAN_LIB ${LIB_NAME} HINTS ${Zoltan_LIBRARY_DIRS})
if (NOT _ZOLTAN_LIB)
message(FATAL_ERROR "Could not find library \"${LIB_NAME}\" in directories ${Zoltan_LIBRARY_DIRS}!")
else ()
target_link_libraries(${_TARGET_} ${_SCOPE_} ${_ZOLTAN_LIB})
endif ()
unset(_ZOLTAN_LIB CACHE)
endforeach(LIB_NAME)
endif (LINK_EXECUTABLE)
else (Zoltan_FOUND)
find_file(ZOLTAN_HEADER_FILE "zoltan.h" HINTS ${ZOLTAN_DIR}/include ${PETSC_INCLUDE_DIRS})
if (ZOLTAN_HEADER_FILE)
get_filename_component(Zoltan_INCLUDE_DIR "${ZOLTAN_HEADER_FILE}" PATH CACHE)
target_include_directories(${_TARGET_} ${_SCOPE_} ${Zoltan_INCLUDE_DIR})
else()
message(FATAL_ERROR "Could not find Zoltan include file 'zoltan.h'!")
endif(ZOLTAN_HEADER_FILE)
if (LINK_EXECUTABLE)
find_library(ZOLTAN_LIB zoltan
HINTS ${Zoltan_INCLUDE_DIR}/../lib DOC "Full path to the zoltan library")
if (NOT ZOLTAN_LIB)
message(FATAL_ERROR "Could not find zoltan library!")
endif (NOT ZOLTAN_LIB)
target_link_libraries(${_TARGET_} ${_SCOPE_} ${ZOLTAN_LIB})
if (LINK_EXECUTABLE)
find_library(ZOLTAN_LIB zoltan
HINTS ENV LIBRARY_PATH DOC "Full path to the zoltan library")
if (NOT ZOLTAN_LIB)
message(FATAL_ERROR "Could not find zoltan library!")
endif (NOT ZOLTAN_LIB)
target_link_libraries(${_TARGET_} ${_SCOPE_} ${ZOLTAN_LIB})
endif (LINK_EXECUTABLE)
find_file(ZOLTAN_CONFIG_FILE "Makefile.export.zoltan" HINTS ${Zoltan_INCLUDE_DIR})
if (ZOLTAN_CONFIG_FILE)
parse_zoltan_makefile(${ZOLTAN_CONFIG_FILE} ${_TARGET_} ${_SCOPE_})
else ()
message(WARNING "Zoltan configuration file Makefile.export.zoltan not found!")
endif ()
endif (LINK_EXECUTABLE)
target_compile_definitions(${_TARGET_} ${_SCOPE_} HAVE_ZOLTAN=1)
target_compile_definitions(${_TARGET_} ${_SCOPE_} HAVE_ZOLTAN=1)
endif (Zoltan_FOUND)
if (ZOLTAN_HEADER_FILE)
file(STRINGS ${ZOLTAN_HEADER_FILE} ZOLTAN_VERSION_LINE REGEX "#define ZOLTAN_VERSION_NUMBER")
string(REGEX MATCH "([0-9]+[.][0-9]+)" ZOLTAN_VERSION_REGEX ${ZOLTAN_VERSION_LINE})
set(ZOLTAN_VERSION ${CMAKE_MATCH_1})
unset(ZOLTAN_HEADER_FILE CACHE)
message(STATUS "Zoltan version: ${ZOLTAN_VERSION}")
endif (ZOLTAN_HEADER_FILE)
endmacro(target_enable_zoltan)
__________
_____ __ __\______ \_____ _______ ______ ____ _______
/ \ | | \| ___/\__ \ \_ __ \/ ___/_/ __ \\_ __ \
| Y Y \| | /| | / __ \_| | \/\___ \ \ ___/ | | \/
|__|_| /|____/ |____| (____ /|__| /____ > \___ >|__|
\/ \/ \/ \/
Mathematical expressions parser library
Copyright (C) 2010 Ingo Berg (muparser{at}gmx.de)
Contents
========
1. Installation on win32
2. Installation on unix
2.1 Other miscellaneous info Unix-specific
3. Where to ask for help
1. Installation on win32
========================
muParser supports various win32 command-line compilers:
-> mingw
-> borland
-> watcom
-> microsoft CL
and provides also the project files for MSVC6 IDE.
In order to compile muParser from makefiles, open an MSDOS
prompt and then move to the muParser/build directory and
type:
mingw32-make -fmakefile.mingw for mingw
nmake -fmakefile.vc for msvc
make -fmakefile.bcc for borland
wmake -fmakefile.wat for watcom
All makefiles supports the following options:
# Set to 1 to build debug version [0,1]
# 0 - Release
# 1 - Debug
DEBUG = 0
# Set to 1 to build shared (DLL) version [0,1]
# 0 - Static
# 1 - DLL
SHARED = 0
# Set to 1 to compile samples [0,1]
SAMPLES = 1
The muParser library is created in the 'lib' folder and the sample
binaries are created in samples\example1 or samples\example2.
NOTE: samples\example1 can be compiled *only* when building
muParser as a STATIC library (SHARED=0).
samples\example2 can be compiled *only* when building
muParser as a SHARED library (SHARED=1).
2. Installation on Unix/Linux
=============================
muParser can be installed just extracting the sources somewhere
and then, from a terminal, typing:
cd [path to muParser]
./configure [--enable-shared=yes/no] [--enable-samples=yes/no]
[--enable-debug=yes/no]
make
[sudo*] make install
[sudo*] ldconfig
cd samples/example1
./example1
* = this command must be executed with root permissions and thus
you have to use 'sudo' or just 'su' to gain root access.
Note that installation and ldconfig are not strictly required unless
you built in shared mode.
The "make" step will create the muParser library in 'lib' and the
sample binary in samples/example1.
The samples/example2 is win32-specific and thus won't be built.
2.1 Other miscellaneous info Unix-specific
==========================================
If you don't like to have your muParser folder filled by temporary
files created by GCC, then you can do the following:
mkdir mybuild && cd mybuild && ../configure && make
to put all object files in the "mybuild" directory.
If you want to use muParser library in your programs, you can use
the pkg-config program (this works only if muParser was installed
with 'make install' !). The commands:
pkg-config muparser --cflags
pkg-config muparser --libs
will return all useful info you need to build your programs against
muParser !
3. Where to ask for help
========================
If you find problems with either compilation, installation or usage
of muParser, then you can ask in the muParser forum at:
https://sourceforge.net/forum/forum.php?forum_id=462843
For more info about muParser, visit:
http://sourceforge.net/projects/muparser/
http://muparser.sourceforge.net
This diff is collapsed.
This diff is collapsed.
#!/bin/bash
#
# Author: Francesco Montorsi
# RCS-ID: $Id: acregen.sh 236 2009-11-24 23:12:00Z frm $
# Creation date: 14/9/2005
#
# A simple script to generate the configure script
# Some features of this version:
# - automatic test for aclocal version
# - able to be called from any folder
# (i.e. you can call it typing 'build/autoconf/acregen.sh', not only './acregen.sh')
# called when an old version of aclocal is found
function aclocalold()
{
echo "Your aclocal version is $aclocal_maj.$aclocal_min.$aclocal_rel"
echo "Your automake installation is too old; please install automake >= $aclocal_minimal_maj.$aclocal_minimal_min.$aclocal_minimal_rel"
echo "You can download automake from ftp://sources.redhat.com/pub/automake/"
exit 1
}
# first check if we have an ACLOCAL version recent enough
aclocal_verfull=$(aclocal --version)
aclocal_maj=`echo $aclocal_verfull | sed 's/aclocal (GNU automake) \([0-9]*\).\([0-9]*\).\([0-9]*\).*/\1/'`
aclocal_min=`echo $aclocal_verfull | sed 's/aclocal (GNU automake) \([0-9]*\).\([0-9]*\).\([0-9]*\).*/\2/'`
aclocal_rel=`echo $aclocal_verfull | sed 's/aclocal (GNU automake) \([0-9]*\).\([0-9]*\).\([0-9]*\).*/\3/'`
if [[ "$aclocal_rel" = "" ]]; then aclocal_rel="0"; fi
#echo "Your aclocal version is $aclocal_maj.$aclocal_min.$aclocal_rel" # for debugging
aclocal_minimal_maj=1
aclocal_minimal_min=9
aclocal_minimal_rel=6
majok=$(($aclocal_maj > $aclocal_minimal_maj))
minok=$(($aclocal_maj == $aclocal_minimal_maj && $aclocal_min > $aclocal_minimal_min))
relok=$(($aclocal_maj == $aclocal_minimal_maj && $aclocal_min == $aclocal_minimal_min && \
$aclocal_rel >= $aclocal_minimal_rel))
versionok=$(($majok == 1 || $minok == 1 || $relok == 1))
if [[ "$versionok" = "0" ]]; then aclocalold; fi