diff --git a/CMakeLists.txt b/CMakeLists.txt index 96150e6bf4..f50090bde1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,20 +12,13 @@ set(TOP_CMAKE_WAS_SOURCED TRUE) # Note: disable the failure in package mode if(NOT PACKAGE_MODE) if(CMAKE_SIZEOF_VOID_P MATCHES "8") - if (EXISTS /etc/fedora-release) - # Fedora users can install all .i686 - message(STATUS " - Please ensure that you have all 32bits dependency installed (.i686 packages). - See http://code.google.com/p/pcsx2/wiki/ChrootAnd64bStatusLinux for more details.") - else (EXISTS /etc/fedora-release) - message(FATAL_ERROR " - PCSX2 does not support a 64-bit environment. Please install a 32-bit chroot or a 32-bit OS. - PCSX2 has no plan to support a 64-bit architecture in the future. + message(WARNING " + PCSX2 does not support a 64-bits environment and has no plan to support a 64-bits architecture in the future. It would need a complete rewrite of the core emulator and a lot of time. - However, when linux distribution properly supports multi-arch packages, it will - be at least possible to easily compile and install PCSX2 without too much hassle (the chroot environment).") - endif (EXISTS /etc/fedora-release) + You can still run a 32-bits binary if you install all 32-bits libraries (runtime and dev). + + Ubuntu users, please upgrade to 12.04.") endif(CMAKE_SIZEOF_VOID_P MATCHES "8") endif(NOT PACKAGE_MODE) @@ -35,12 +28,19 @@ if(CMAKE_SIZEOF_VOID_P MATCHES "8") SET_PROPERTY(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS OFF) # Probably useless but it will not harm SET_PROPERTY(GLOBAL PROPERTY COMPILE_DEFINITIONS "-m32") + + + # Force the search on 32-bits path. + if(EXISTS "/usr/lib32") + set(CMAKE_LIBRARY_ARCHITECTURE "../lib32") + endif() + # Debian/ubuntu drop /usr/lib32 + if(EXISTS "/usr/lib/i386-linux-gnu") + set(CMAKE_LIBRARY_ARCHITECTURE "i386-linux-gnu") + endif() + endif(CMAKE_SIZEOF_VOID_P MATCHES "8") -# Use multiarch path if they exists -if(EXISTS "/usr/lib/i386-linux-gnu") - set(CMAKE_LIBRARY_ARCHITECTURE "i386-linux-gnu") -endif() # * -fPIC option was removed for multiple reasons. # - Code only supports the x86 architecture. diff --git a/bin/launch_pcsx2_linux.sh b/bin/launch_pcsx2_linux.sh index 9a86c366a2..7383eb0df2 100755 --- a/bin/launch_pcsx2_linux.sh +++ b/bin/launch_pcsx2_linux.sh @@ -65,7 +65,7 @@ fi # Launch PCSX2 if [ -x pcsx2 ] then - ./pcsx2 + ./pcsx2 $@ else echo "Error PCSX2 not found" echo "Maybe the script was directly 'called'" diff --git a/pcsx2/CMakeLists.txt b/pcsx2/CMakeLists.txt index 98f3ef4e21..2763d2f169 100644 --- a/pcsx2/CMakeLists.txt +++ b/pcsx2/CMakeLists.txt @@ -666,6 +666,13 @@ endforeach(res_file IN ITEMS ConfigIcon_Appearance ConfigIcon_Cpu ConfigIcon_Gamefixes ConfigIcon_MemoryCard ConfigIcon_Paths ConfigIcon_Plugins ConfigIcon_Speedhacks ConfigIcon_Video) +# Suppress all the system-specific predefined macros outside the reserved namespace. +# Needed when stringifying macros. +# See issue: 1233 +if(PACKAGE_MODE) + SET_SOURCE_FILES_PROPERTIES(gui/AppConfig.cpp PROPERTIES COMPILE_FLAGS "-Wp,-ansi,-U__STRICT_ANSI__") +endif(PACKAGE_MODE) + # link target with project internal libraries target_link_libraries(${Output} Utilities x86emitter)