Merge branch 'upstream'

Integrate from SVN upstream, version 1396.

All conflicts resolved by hand.

Conflicts:
	src/libprojectM/MilkdropPresetFactory/BuiltinFuncs.hpp
	src/libprojectM/MilkdropPresetFactory/Expr.cpp
	src/libprojectM/Renderer/Renderer.cpp
	src/libprojectM/config.inp.in
	src/libprojectM/projectM.cpp
diff --git a/AUTHORS.txt b/AUTHORS.txt
index e0ae79c..b25ef5e 100644
--- a/AUTHORS.txt
+++ b/AUTHORS.txt
@@ -1,42 +1,46 @@
-

-projectM -- Milkdrop-esque visualisation SDK

-Copyright (C)2003-2007 projectM Team

-

-This library is free software; you can redistribute it and/or

-modify it under the terms of the GNU Lesser General Public

-License as published by the Free Software Foundation; either

-version 2.1 of the License, or (at your option) any later version.

-

-This library is distributed in the hope that it will be useful,

-but WITHOUT ANY WARRANTY; without even the implied warranty of

-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU

-Lesser General Public License for more details.

-

-You should have received a copy of the GNU Lesser General Public

-License along with this library; if not, write to the Free Software

-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

-See 'LICENSE.txt' included within this release

-

-For the purposes of the copyright statement in the preamble of each source

-code file comprising projectM, the projectM team are:

-

-Carmelo Piccione

-    Parser

-    Evaluator

-    Pulse Audio support (projectM-pulseaudio)

-    Qt GUI (projectM-qt)

-	

-Peter Sperl

-    Beat Detection

-    Rendering

-    XMMS Support (projectM-xmms)

-    libvisual Support (projectM-libvisual)   

-

-Alligator Descartes

-    Media Player Support (iTunes, Winamp, Windows Media Player)

-    Test application frameworks (projectM-wxvis, projectM-sdlvis)

-    DVD application (projectM-movie)

-    Win32 screensaver (projectM-screensaver)

-

-Roger Dannenburg

-    Advice & Support

+projectM -- Milkdrop-esque visualisation SDK
+Copyright (C)2003-2007 projectM Team
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or (at your option) any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+See 'LICENSE.txt' included within this release
+
+For the purposes of the copyright statement in the preamble of each source
+code file comprising projectM, the projectM team are:
+
+Carmelo Piccione
+    Parser
+    Evaluator
+    Pulse Audio support (projectM-pulseaudio)
+    Qt GUI (projectM-qt)
+
+Peter Sperl
+    Beat Detection
+    Rendering
+    XMMS Support (projectM-xmms)
+    libvisual Support (projectM-libvisual)
+
+Alligator Descartes
+    Media Player Support (iTunes, Winamp, Windows Media Player)
+    Test application frameworks (projectM-wxvis, projectM-sdlvis)
+    DVD application (projectM-movie)
+    Win32 screensaver (projectM-screensaver)
+
+Roger Dannenburg
+    Advice & Support
+
+Matthias Klumpp
+    CMake build system
+    Distro integration
+    Bug fixes
diff --git a/CMakeLists.txt b/CMakeLists.txt
index dcda29d..634b82f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,11 +1,5 @@
 PROJECT(projectM-complete)
-cmake_minimum_required(VERSION 2.4.0)
-cmake_policy(SET CMP0005 OLD)
-
-if(COMMAND cmake_policy)
-       cmake_policy(SET CMP0003 NEW)
-endif(COMMAND cmake_policy)
-
+cmake_minimum_required(VERSION 2.8.0)
 
 include(src/cmake/CPack-projectM.cmake)
 
diff --git a/src/libprojectM/CMakeLists.txt b/src/libprojectM/CMakeLists.txt
index 7680ce8..c3dae7a 100644
--- a/src/libprojectM/CMakeLists.txt
+++ b/src/libprojectM/CMakeLists.txt
@@ -31,16 +31,10 @@
 set(PROJECTM_ABI_LEVEL 2)
 #
 
-SET(LIB_SUFFIX ""
-  CACHE STRING "Define suffix of directory name (32/64)"
-  FORCE)
-
-ADD_DEFINITIONS(-DLIB_SUFFIX="\\\"${LIB_SUFFIX}\\\"")
-
 ADD_DEFINITIONS(-DCMAKE_INSTALL_PREFIX="\\\"${CMAKE_INSTALL_PREFIX}\\\"")
 
-SET(LIB_INSTALL_DIR "\${exec_prefix}/lib${LIB_SUFFIX}"
-  CACHE PATH "The subdirectory relative to the install prefix where libraries will be installed (default is /lib${LIB_SUFFIX})"
+SET(LIB_INSTALL_DIR "\${exec_prefix}/lib"
+  CACHE PATH "The subdirectory relative to the install prefix where libraries will be installed (default is /lib)"
   FORCE)
 
 ADD_DEFINITIONS(-DSINGLE_PROCESS)
@@ -210,14 +204,26 @@
 	)
 endif(BUILD_PROJECTM_STATIC)
 
+SET(projectM_FONT_MENU "${CMAKE_INSTALL_PREFIX}/${RESOURCE_PREFIX}/fonts/VeraMono.ttf" CACHE FILEPATH "Path to the default menu TrueType font")
+SET(projectM_FONT_TITLE "${CMAKE_INSTALL_PREFIX}/${RESOURCE_PREFIX}/fonts/Vera.ttf" CACHE FILEPATH "Path to the default title TrueType font")
+ADD_DEFINITIONS(-DprojectM_FONT_MENU="\\\"${projectM_FONT_MENU}\\\"")
+ADD_DEFINITIONS(-DprojectM_FONT_TITLE="\\\"${projectM_FONT_TITLE}\\\"")
 
 CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/libprojectM.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/libprojectM.pc" @ONLY)
 CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/config.inp.in" "${CMAKE_CURRENT_BINARY_DIR}/config.inp" @ONLY)
 
+IF(projectM_FONT_MENU MATCHES "${CMAKE_INSTALL_PREFIX}/${RESOURCE_PREFIX}/fonts/Vera.ttf" OR projectM_FONT_TITLE MATCHES "${CMAKE_INSTALL_PREFIX}/${RESOURCE_PREFIX}/fonts/Vera.ttf")
+	INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/fonts/VeraMono.ttf DESTINATION ${CMAKE_INSTALL_PREFIX}/${RESOURCE_PREFIX}/fonts)
+ENDIF(projectM_FONT_MENU MATCHES "${CMAKE_INSTALL_PREFIX}/${RESOURCE_PREFIX}/fonts/Vera.ttf" OR projectM_FONT_TITLE MATCHES "${CMAKE_INSTALL_PREFIX}/${RESOURCE_PREFIX}/fonts/Vera.ttf")
+
+IF(projectM_FONT_MENU MATCHES "${CMAKE_INSTALL_PREFIX}/${RESOURCE_PREFIX}/fonts/VeraMono.ttf" OR projectM_FONT_TITLE MATCHES "${CMAKE_INSTALL_PREFIX}/${RESOURCE_PREFIX}/fonts/VeraMono.ttf")
+	INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/fonts/VeraMono.ttf DESTINATION ${CMAKE_INSTALL_PREFIX}/${RESOURCE_PREFIX}/fonts)
+ENDIF(projectM_FONT_MENU MATCHES "${CMAKE_INSTALL_PREFIX}/${RESOURCE_PREFIX}/fonts/VeraMono.ttf" OR projectM_FONT_TITLE MATCHES "${CMAKE_INSTALL_PREFIX}/${RESOURCE_PREFIX}/fonts/VeraMono.ttf")
+
 FILE(GLOB presets "presets/*.milk" "presets/*.prjm" "presets/*.tga")
 INSTALL(FILES ${presets} DESTINATION ${CMAKE_INSTALL_PREFIX}/share/projectM/presets)
 INSTALL(FILES ${Renderer_SOURCE_DIR}/projectM.cg ${Renderer_SOURCE_DIR}/blur.cg DESTINATION ${CMAKE_INSTALL_PREFIX}/share/projectM/shaders)
-INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libprojectM.pc DESTINATION ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/pkgconfig)
+INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libprojectM.pc DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig)
 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/config.inp DESTINATION ${CMAKE_INSTALL_PREFIX}/share/projectM)
 INSTALL(FILES projectM.hpp event.h dlldefs.h fatal.h PCM.hpp Common.hpp DESTINATION include/libprojectM)
-INSTALL(TARGETS projectM DESTINATION lib${LIB_SUFFIX})
+INSTALL(TARGETS projectM DESTINATION lib)
diff --git a/src/libprojectM/MilkdropPresetFactory/BuiltinFuncs.cpp b/src/libprojectM/MilkdropPresetFactory/BuiltinFuncs.cpp
index a539154..0835f97 100644
--- a/src/libprojectM/MilkdropPresetFactory/BuiltinFuncs.cpp
+++ b/src/libprojectM/MilkdropPresetFactory/BuiltinFuncs.cpp
@@ -118,7 +118,8 @@
     return PROJECTM_ERROR;
   if (load_builtin_func ("fact", FuncWrappers::fact_wrapper, 1) < 0)
     return PROJECTM_ERROR;
-
+  if (load_builtin_func("print", FuncWrappers::print_wrapper, 1) < 0)
+      return PROJECTM_ERROR;
   return PROJECTM_SUCCESS;
 }
 
diff --git a/src/libprojectM/MilkdropPresetFactory/BuiltinFuncs.hpp b/src/libprojectM/MilkdropPresetFactory/BuiltinFuncs.hpp
index 777eb5c..d74c166 100644
--- a/src/libprojectM/MilkdropPresetFactory/BuiltinFuncs.hpp
+++ b/src/libprojectM/MilkdropPresetFactory/BuiltinFuncs.hpp
@@ -103,6 +103,7 @@
 {
   if ((int)arg_list[0] == 0)
     return arg_list[2];
+  //std::cout <<"NOT ZERO: " << arg_list[0] << std::endl;
   return arg_list[1];
 }
 
@@ -142,11 +143,8 @@
 static float
 sin_wrapper(float * arg_list)
 {
-  assert(arg_list);
-  //return .5;
-  float d = sinf(*arg_list);
+  const float d = sinf(*arg_list);
   return d;
-  //return (sin (arg_list[0]));
 }
 
 
@@ -224,6 +222,27 @@
 
 
 static inline float
+print_wrapper(float * arg_list)
+{
+  int len  = 1;
+
+  for (int i = 0;  i < len;  i++)
+  {
+    std::cout << arg_list[i];
+    if (i != (len - 1))
+      std::cout << " ";
+  }
+
+  if (len > 0)
+    std::cout << std::endl;
+
+  if (len > 0)
+    return arg_list[0];
+  else
+    return 0;
+}
+
+static inline float
 nchoosek_wrapper(float * arg_list)
 {
   unsigned long cnm = 1UL;
diff --git a/src/libprojectM/MilkdropPresetFactory/Expr.cpp b/src/libprojectM/MilkdropPresetFactory/Expr.cpp
index 877fc12..92e5985 100644
--- a/src/libprojectM/MilkdropPresetFactory/Expr.cpp
+++ b/src/libprojectM/MilkdropPresetFactory/Expr.cpp
@@ -27,13 +27,14 @@
 #include <iostream>
 #include "Eval.hpp"
 
-
 float
 GenExpr::eval_gen_expr ( int mesh_i, int mesh_j )
 {
   float l;
 
-  assert ( item );
+  if (item == 0)
+    return EVAL_ERROR;
+
   switch ( this->type )
   {
   case VAL_T:
diff --git a/src/libprojectM/Renderer/Renderer.cpp b/src/libprojectM/Renderer/Renderer.cpp
index 78c1501..41662d5 100644
--- a/src/libprojectM/Renderer/Renderer.cpp
+++ b/src/libprojectM/Renderer/Renderer.cpp
@@ -7,6 +7,7 @@
 #include "TextureManager.hpp"
 #include <iostream>
 #include <algorithm>
+#include <sys/stat.h>
 #include <cassert>
 #include "omptl/omptl"
 #include "omptl/omptl_algorithm"
@@ -61,7 +62,17 @@
   this->beatDetect = beatDetect;
 
 #ifdef USE_FTGL
-  /**f Load the standard fonts */
+  /** Load the standard fonts if they do exist */
+  struct stat buffer;
+
+  if (stat( title_fontURL.c_str(), &buffer )) {
+    std::cout << "Could not open font file: " << title_fontURL << std::endl;
+    exit(1);
+  }
+  if (stat( menu_fontURL.c_str(), &buffer )) {
+    std::cout << "Could not open font file: " << menu_fontURL << std::endl;
+    exit(1);
+  }
 
   title_font = new FTGLPixmapFont(title_fontURL.c_str());
   other_font = new FTGLPixmapFont(menu_fontURL.c_str());
@@ -82,6 +93,7 @@
     poly_font->Depth(20);
     poly_font->FaceSize(72);
   }
+
 #endif /** USE_FTGL */
 
 
@@ -275,6 +287,17 @@
 Renderer::RenderFrame(const Pipeline &pipeline, const PipelineContext &pipelineContext)
 {
 
+#ifdef USE_FBO
+  // when not 'renderToTexture', the user may use its own couple FBO/texture
+  // so retrieve this external FBO if it exists, (0 means no FBO) and unbind it
+  GLint externalFBO = 0;
+  if (!renderTarget->renderToTexture)
+  {
+    glGetIntegerv(GL_FRAMEBUFFER_BINDING, &externalFBO);
+    glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
+  }
+#endif
+
   SetupPass1(pipeline, pipelineContext);
 
 #ifdef USE_CG
@@ -287,6 +310,15 @@
 
   RenderItems(pipeline, pipelineContext);
   FinishPass1();
+
+#ifdef USE_FBO
+  // when not 'renderToTexture', the user may use its own couple FBO/texture
+  // if it exists (0 means no external FBO)
+  // then rebind it just before calling the final pass: Pass2
+  if (!renderTarget->renderToTexture && externalFBO != 0)
+    glBindFramebufferEXT (GL_FRAMEBUFFER_EXT, externalFBO);
+#endif
+
   Pass2(pipeline, pipelineContext);
 }
 
diff --git a/src/libprojectM/config.inp.in b/src/libprojectM/config.inp.in
index 7cf9697..dcf9cf1 100644
--- a/src/libprojectM/config.inp.in
+++ b/src/libprojectM/config.inp.in
@@ -17,5 +17,5 @@
 Aspect Correction = true	# Custom Shape Aspect Correction
 
 Preset Path = @CMAKE_INSTALL_PREFIX@/@RESOURCE_PREFIX@/presets # preset location
-Title Font = @CMAKE_INSTALL_PREFIX@/@RESOURCE_PREFIX@/fonts/Vera.ttf
-Menu Font = @CMAKE_INSTALL_PREFIX@/@RESOURCE_PREFIX@/fonts/VeraMono.ttf
+Title Font = @projectM_FONT_TITLE@
+Menu Font = @projectM_FONT_MENU@
diff --git a/src/libprojectM/libprojectM.pc.in b/src/libprojectM/libprojectM.pc.in
index 2a1fa2b..90de752 100644
--- a/src/libprojectM/libprojectM.pc.in
+++ b/src/libprojectM/libprojectM.pc.in
@@ -6,7 +6,7 @@
 sysconfdir=@CMAKE_INSTALL_PREFIX@/@RESOURCE_PREFIX@
 
 Name: libprojectM
-Version: 2.0.0
+Version: @PROJECTM_VERSION@
 Description: projectM - OpenGL Milkdrop
 Requires:
 Libs: -L${libdir} -lprojectM
diff --git a/src/libprojectM/projectM.cpp b/src/libprojectM/projectM.cpp
index 147e078..952035f 100644
--- a/src/libprojectM/projectM.cpp
+++ b/src/libprojectM/projectM.cpp
@@ -220,16 +220,16 @@
 
 #ifdef LINUX
   _settings.titleFontURL = config.read<string>
-      ("Title Font", CMAKE_INSTALL_PREFIX  "/share/projectM/fonts/Vera.ttf");
+      ("Title Font", projectM_FONT_TITLE);
   _settings.menuFontURL = config.read<string>
-      ("Menu Font", CMAKE_INSTALL_PREFIX  "/share/projectM/fonts/VeraMono.ttf");
+      ("Menu Font", projectM_FONT_MENU);
 #endif
 
 #ifdef WIN32
   _settings.titleFontURL = config.read<string>
-      ("Title Font", CMAKE_INSTALL_PREFIX  "/share/projectM/fonts/Vera.ttf");
+      ("Title Font", projectM_FONT_TITLE);
   _settings.menuFontURL = config.read<string>
-      ("Menu Font", CMAKE_INSTALL_PREFIX  "/share/projectM/fonts/VeraMono.ttf");
+      ("Menu Font", projectM_FONT_MENU);
 #endif
 
 
diff --git a/src/projectM-libvisual/CMakeLists.txt b/src/projectM-libvisual/CMakeLists.txt
index ed2f576..28d8f90 100644
--- a/src/projectM-libvisual/CMakeLists.txt
+++ b/src/projectM-libvisual/CMakeLists.txt
@@ -1,19 +1,13 @@
 PROJECT(projectM_libvisual)
 cmake_minimum_required(VERSION 2.4.0)
-    if(COMMAND cmake_policy)
-      cmake_policy(SET CMP0003 NEW)
-    endif(COMMAND cmake_policy)
-
 
 INCLUDE(cmake/CPack-projectM.cmake)
 
-
 ADD_LIBRARY(projectM_libvisual SHARED actor_projectM.cpp lvtoprojectM.h ConfigFile.h ConfigFile.cpp)
 
 INCLUDE(FindPkgConfig.cmake)
 cmake_policy(SET CMP0005 OLD)
 
-
 FIND_PACKAGE(OpenGL)
 FIND_PACKAGE(SDL)
 
@@ -30,19 +24,18 @@
 pkg_search_module(LIBVISUAL REQUIRED libvisual-0.4)
 
 if (LIBPROJECTM_FOUND)
-MESSAGE (STATUS "[projectM-libvisual] projectM detected.")
+	MESSAGE (STATUS "[projectM-libvisual] projectM detected.")
 else(LIBPROJECTM_FOUND)
-MESSAGE (FATAL_ERROR "projectM NOT detected. Please install the projectM module or build from the top level projectM source directory.")
+	MESSAGE (FATAL_ERROR "projectM NOT detected. Please install the projectM module or build from the top level projectM source directory.")
 endif(LIBPROJECTM_FOUND)
 
 if(LIBVISUAL_FOUND)
-MESSAGE(STATUS "[projectM-libvisual] libvisual detected.")
+	MESSAGE(STATUS "[projectM-libvisual] libvisual detected.")
 else(LIBVISUAL_FOUND)
-MESSAGE(FATAL_ERROR "libvisual 0.4 not found! Please visit http://libvisual.sf.net and download the module.")
+	MESSAGE(FATAL_ERROR "libvisual 0.4 not found! Please visit http://libvisual.sf.net and download the module.")
 endif(LIBVISUAL_FOUND)
 
 
-
 if (${CMAKE_PROJECT_NAME} MATCHES "projectM-complete")
    set(PROJECTM_INCLUDE ${PROJECTM_ROOT_SOURCE_DIR}/libprojectM)
    set(PROJECTM_LINK ${PROJECTM_ROOT_BINARY_DIR}/libprojectM)
diff --git a/src/projectM-pulseaudio/CMakeLists.txt b/src/projectM-pulseaudio/CMakeLists.txt
index 5f3e23b..2adc907 100644
--- a/src/projectM-pulseaudio/CMakeLists.txt
+++ b/src/projectM-pulseaudio/CMakeLists.txt
@@ -57,8 +57,8 @@
   message(STATUS "FTGL_LIBRARY_DIRS = ${FTGL_LIBRARY_DIRS}")
   include_directories(${FTGL_INCLUDE_DIRS})
   link_directories(${FTGL_LIBRARY_DIRS})
-else (FTGL_FOUND)
-  message(FATAL_ERROR "ERROR: ftgl library not detected. Please install it from ftgl.wiki.sourceforge.net")
+else (FTGL_FOUND USE)
+##  message(FATAL_ERROR "ERROR: ftgl library not detected. Please install it from ftgl.wiki.sourceforge.net")
 endif (FTGL_FOUND)
 
 set(projectM_pulseaudio_SRCS
diff --git a/src/projectM-qt/CMakeLists.txt b/src/projectM-qt/CMakeLists.txt
index e73ab52..750d1ed 100644
--- a/src/projectM-qt/CMakeLists.txt
+++ b/src/projectM-qt/CMakeLists.txt
@@ -8,11 +8,11 @@
 include_directories( ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} )
 
 include(FindPkgConfig.cmake)
-if (${CMAKE_PROJECT_NAME} MATCHES "PROJECTM_ROOT")
+if (${CMAKE_PROJECT_NAME} MATCHES "projectM-complete")
 	set(LIBPROJECTM_FOUND true)
-else(${CMAKE_PROJECT_NAME} MATCHES "PROJECTM_ROOT")
+else(${CMAKE_PROJECT_NAME} MATCHES "projectM-complete")
 	pkg_search_module(LIBPROJECTM REQUIRED libprojectM)
-endif(${CMAKE_PROJECT_NAME} MATCHES "PROJECTM_ROOT")
+endif(${CMAKE_PROJECT_NAME} MATCHES "projectM-complete")
 
 OPTION(BUILD_PROJECTM_QT_STATIC "Build a static library of projectM-qt rather than the usual shared library format" OFF)
 
@@ -116,8 +116,8 @@
 SET_TARGET_PROPERTIES(projectM-qt PROPERTIES VERSION ${PROJECTM_QT_VERSION} SOVERSION ${PROJECTM_QT_ABI_LEVEL})
 
 if (${CMAKE_PROJECT_NAME} MATCHES "projectM-complete")
-   set(PROJECTM_INCLUDE ${PROJECTM_ROOT_SOURCE_DIR}/libprojectM)
-   set(PROJECTM_LINK ${PROJECTM_ROOT_BINARY_DIR}/libprojectM)
+   set(PROJECTM_INCLUDE ${projectM-complete_SOURCE_DIR}/libprojectM)
+   set(PROJECTM_LINK ${projectM-complete_BINARY_DIR}/libprojectM)
 elseif (${CMAKE_PROJECT_NAME} MATCHES ${PROJECT_NAME})
    set(PROJECTM_INCLUDE ${LIBPROJECTM_INCLUDEDIR}/libprojectM)
    set(PROJECTM_LINK ${PROJECTM_LDFLAGS})
@@ -131,6 +131,6 @@
 target_link_libraries(projectM-qt projectM GLEW GL ${QT_QTGUI_LIBRARIES} ${QT_QTOPENGL_LIBRARIES} ${QT_QTXML_LIBRARIES} ${QT_LIBRARIES})
 
 install(FILES qprojectm_mainwindow.hpp DESTINATION include/libprojectM-qt)
-install(TARGETS projectM-qt DESTINATION lib${LIB_SUFFIX})
-install(FILES "${CMAKE_CURRENT_BINARY_DIR}/libprojectM-qt.pc" DESTINATION ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/pkgconfig)
+install(TARGETS projectM-qt DESTINATION lib)
+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/libprojectM-qt.pc" DESTINATION lib/pkgconfig)
 install(FILES "images/icons/prjm16-transparent.svg" DESTINATION	${CMAKE_INSTALL_PREFIX}/share/pixmaps)
diff --git a/src/projectM-xmms/CMakeLists.txt b/src/projectM-xmms/CMakeLists.txt
index 453e3ca..4688f48 100644
--- a/src/projectM-xmms/CMakeLists.txt
+++ b/src/projectM-xmms/CMakeLists.txt
@@ -44,4 +44,4 @@
 
 TARGET_LINK_LIBRARIES(xmms_projectM projectM xmms ${SDL_LIBRARY} ${GTK_LIBRARIES})
 
-INSTALL(TARGETS xmms_projectM DESTINATION ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/xmms/Visualization )
+INSTALL(TARGETS xmms_projectM DESTINATION lib/xmms/Visualization )