1# Process this file with autoconf to create configure. 2 3AC_PREREQ([2.65]) 4 5# ==================== 6# Version informations 7# ==================== 8m4_define([libgltf_version_major],[0]) 9m4_define([libgltf_version_minor],[0]) 10m4_define([libgltf_version_micro],[2]) 11m4_define([libgltf_version],[libgltf_version_major.libgltf_version_minor.libgltf_version_micro]) 12 13# ============= 14# Automake init 15# ============= 16AC_INIT([libgltf],[libgltf_version]) 17AC_CONFIG_MACRO_DIR([m4]) 18AC_CONFIG_HEADERS([config.h]) 19AM_INIT_AUTOMAKE([1.11 foreign dist-xz dist-bzip2]) 20AM_SILENT_RULES([yes]) 21AC_LANG([C++]) 22 23# =========================== 24# Find required base packages 25# =========================== 26AC_PROG_CXX 27AC_PROG_CXXCPP 28AC_PROG_INSTALL 29AC_PROG_LN_S 30AC_PROG_MAKE_SET 31LT_INIT([disable-static pic-only]) 32PKG_PROG_PKG_CONFIG([0.20]) 33 34# ========= 35# Find boost 36# ========= 37save_CPPFLAGS=$CPPFLAGS 38CPPFLAGS="$CPPFLAGS $BOOST_CFLAGS" 39AC_CHECK_HEADERS( 40 boost/property_tree/ptree.hpp \ 41 boost/property_tree/json_parser.hpp \ 42 boost/foreach.hpp, 43 [], 44 [AC_MSG_ERROR(Required boost headers not found. Install boost >= 1.41.0)], 45 []) 46CPPFLAGS=$save_CPPFLAGS 47AC_SUBST([BOOST_CFLAGS]) 48 49# ========= 50# Find glew 51# ========= 52save_CPPFLAGS=$CPPFLAGS 53CPPFLAGS="$CPPFLAGS $GLEW_CFLAGS" 54PKG_CHECK_MODULES(GLEW, [glew >= 1.8.0], [] [ 55 AC_CHECK_HEADER(GL/glew.h, [], 56 [AC_MSG_ERROR(GL/glew.h not found. install glew)], []) 57]) 58CPPFLAGS=$save_CPPFLAGS 59AC_SUBST([GLEW_CFLAGS]) 60AC_SUBST([GLEW_LIBS]) 61 62# ========= 63# Find glm 64# ========= 65AC_LANG_PUSH([C++]) 66save_CPPFLAGS=$CPPFLAGS 67CPPFLAGS="$CPPFLAGS $GLM_CFLAGS" 68AC_CHECK_HEADERS( 69 glm/glm.hpp \ 70 glm/gtc/matrix_inverse.hpp \ 71 glm/gtc/matrix_transform.hpp \ 72 glm/gtc/quaternion.hpp \ 73 glm/gtc/type_ptr.hpp \ 74 glm/gtx/quaternion.hpp \ 75 glm/gtx/rotate_vector.hpp \ 76 glm/gtx/transform.hpp, 77 [], 78 [AC_MSG_ERROR([Required glm headers not found. Install glm >= 0.9.0.0])], 79 []) 80AC_LANG_POP([C++]) 81CPPFLAGS=$save_CPPFLAGS 82AC_SUBST([GLM_CFLAGS]) 83 84# ============================= 85# Check the needed time header 86# ============================= 87 88AC_CHECK_HEADERS( 89 sys/time.h, 90 [], 91 [AC_MSG_ERROR([Required sys/time.h not found.])], 92 []) 93 94AC_CHECK_FUNCS( 95 gettimeofday, 96 [], 97 [AC_MSG_ERROR([Required gettimeofday() method is not found.])] 98 ) 99 100# ================================= 101# Libtool/Version Makefile settings 102# ================================= 103AC_SUBST(GLTF_MAJOR_VERSION, [libgltf_version_major]) 104AC_SUBST(GLTF_MINOR_VERSION, [libgltf_version_minor]) 105AC_SUBST(GLTF_MICRO_VERSION, [libgltf_version_micro]) 106AC_SUBST(GLTF_VERSION, [libgltf_version]) 107LT_CURRENT=`expr 100 '*' libgltf_version_major + libgltf_version_minor` 108LT_AGE=0 109AC_SUBST(LT_CURRENT) 110AC_SUBST(LT_REVISION, [libgltf_version_micro]) 111AC_SUBST(LT_AGE) 112 113 114# ================ 115# Check for cflags 116# ================ 117AC_ARG_ENABLE([werror], 118 [AS_HELP_STRING([--disable-werror], [Treat all warnings as errors, usefull for development])], 119 [enable_werror="$enableval"], 120 [enable_werror=yes] 121) 122AS_IF([test x"$enable_werror" != "xno"], [ 123 LIBGLTF_CXXFLAGS="$LIBGLTF_CXXFLAGS -Werror" 124]) 125AS_IF([test x"$GCC" = xyes], [ 126# Be tough with warnings and produce less careless code 127 LIBGLTF_CXXFLAGS="$LIBGLTF_CXXFLAGS -Wall -pedantic -Wextra -Weffc++ -Wshadow -Wendif-labels -Wundef -Wunused-macros" 128]) 129 130AC_SUBST(LIBGLTF_CXXFLAGS) 131 132# ============ 133# Debug switch 134# ============ 135AC_ARG_ENABLE([debug], 136 [AS_HELP_STRING([--enable-debug], [Turn on debugging])], 137 [enable_debug="$enableval"], 138 [enable_debug=no] 139) 140AS_IF([test "x$enable_debug" = "xyes"], [ 141 DEBUG_CXXFLAGS="-DDEBUG -g" 142], [ 143 DEBUG_CXXFLAGS="-DNDEBUG" 144]) 145 146AC_SUBST(DEBUG_CXXFLAGS) 147 148# ========== 149# Unit tests 150# ========== 151if test "$host_os" = "linux-gnu"; then 152 153AC_ARG_ENABLE([tests], 154 [AS_HELP_STRING([--enable-tests], [Build and run unit tests])], 155 [enable_tests="$enableval"], 156 [enable_tests=no] 157) 158AS_IF([test "x$enable_tests" = "xyes"], [ 159 PKG_CHECK_MODULES([CPPUNIT], [cppunit]) 160], []) 161AC_SUBST([CPPUNIT_CFLAGS]) 162AC_SUBST([CPPUNIT_LIBS]) 163 164AS_IF([test "x$enable_tests" = "xyes"], [ 165 PKG_CHECK_MODULES([X11], [x11]) 166], []) 167AC_SUBST([X11_CFLAGS]) 168AC_SUBST([X11_LIBS]) 169 170AS_IF([test "x$enable_tests" = "xyes"], [ 171 PKG_CHECK_MODULES([GL], [gl]) 172], []) 173AC_SUBST([GL_CFLAGS]) 174AC_SUBST([GL_LIBS]) 175 176AS_IF([test "x$enable_tests" = "xyes"], [ 177 PKG_CHECK_MODULES([LIBPNG], [libpng]) 178], []) 179AC_SUBST([LIBPNG_CFLAGS]) 180AC_SUBST([LIBPNG_LIBS]) 181 182fi 183 184AM_CONDITIONAL(TESTS, [test "x$enable_tests" = "xyes"]) 185 186# ===================== 187# Prepare all .in files 188# ===================== 189AC_CONFIG_FILES([ 190Makefile 191src/Makefile 192inc/Makefile 193build/Makefile 194build/win32/Makefile 195libgltf-$GLTF_MAJOR_VERSION.$GLTF_MINOR_VERSION.pc:libgltf.pc.in 196qa/Makefile 197qa/data/Makefile 198qa/data/duck_model/Makefile 199qa/data/duck_model/buffers/Makefile 200qa/data/duck_model/shaders/Makefile 201qa/data/duck_model/textures/Makefile 202qa/helper/Makefile 203qa/test/Makefile 204]) 205AC_OUTPUT 206 207# ============================================== 208# Display final informations about configuration 209# ============================================== 210AC_MSG_NOTICE([ 211============================================================================== 212Build configuration: 213 debug: ${enable_debug} 214 werror: ${enable_werror} 215 tests: ${enable_tests} 216============================================================================== 217]) 218 219 220