Mailinglist Archive: zypp-devel (149 mails)
| < Previous | Next > |
[zypp-devel] [patch] build satsolver as user with prefix != /usr
- From: "Jan-Simon Möller" <dl9pf@xxxxxx>
- Date: Wed, 3 Sep 2008 23:43:29 +0200
- Message-id: <200809032343.29455.dl9pf@xxxxxx>
Hi !
Here are some hacks I use to build satsolver locally without touching the
installed system / build in separate prefix.
Could we add these or such a solution to the repo ?
best regards
Jan-Simon
Index: cmake/modules/FindRuby.cmake
===================================================================
--- cmake/modules/FindRuby.cmake (Revision 10927)
+++ cmake/modules/FindRuby.cmake (Arbeitskopie)
@@ -44,21 +44,22 @@
EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r vendor-specific -e "print
'-rvendor-specific'"
OUTPUT_VARIABLE RUBY_VENDOR_ARG)
-IF(RUBY_VENDOR_ARG)
- EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print
Config::CONFIG['vendorarchdir']"
- OUTPUT_VARIABLE RUBY_VENDORARCH_DIR)
+IF(NOT RUBY_VENDORARCH_DIR)
+ IF(RUBY_VENDOR_ARG)
+ EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print
Config::CONFIG['vendorarchdir']"
+ OUTPUT_VARIABLE RUBY_VENDORARCH_DIR)
+ EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print
Config::CONFIG['vendorlibdir']"
+ OUTPUT_VARIABLE RUBY_VENDORLIB_DIR)
+ ELSE(RUBY_VENDOR_ARG)
+ # fall back to site*dir
+ EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print
Config::CONFIG['sitearchdir']"
+ OUTPUT_VARIABLE RUBY_VENDORARCH_DIR)
- EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print
Config::CONFIG['vendorlibdir']"
- OUTPUT_VARIABLE RUBY_VENDORLIB_DIR)
-ELSE(RUBY_VENDOR_ARG)
- # fall back to site*dir
- EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print
Config::CONFIG['sitearchdir']"
- OUTPUT_VARIABLE RUBY_VENDORARCH_DIR)
+ EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print
Config::CONFIG['sitelibdir']"
+ OUTPUT_VARIABLE RUBY_VENDORLIB_DIR)
+ ENDIF(RUBY_VENDOR_ARG)
+ENDIF(NOT RUBY_VENDORARCH_DIR)
- EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print
Config::CONFIG['sitelibdir']"
- OUTPUT_VARIABLE RUBY_VENDORLIB_DIR)
-ENDIF(RUBY_VENDOR_ARG)
-
# this is not needed if you use "print" inside the ruby statements
# remove the new lines from the output by replacing them with empty strings
#STRING(REPLACE "\n" "" RUBY_ARCH_DIR "${RUBY_ARCH_DIR}")
Index: bindings/python/CMakeLists.txt
===================================================================
--- bindings/python/CMakeLists.txt (Revision 10927)
+++ bindings/python/CMakeLists.txt (Arbeitskopie)
@@ -13,7 +13,9 @@
SET( SWIG_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/satsolver_python.c" )
FIND_PACKAGE(PythonInterp REQUIRED)
-EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout; from
distutils import sysconfig; stdout.write(sysconfig.get_python_lib())"
OUTPUT_VARIABLE PYTHON_LIB_DIR)
+IF(NOT PYTHON_LIB_DIR)
+ EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout;
from distutils import sysconfig; stdout.write(sysconfig.get_python_lib())"
OUTPUT_VARIABLE PYTHON_LIB_DIR)
+ENDIF(NOT PYTHON_LIB_DIR)
IF (NOT PYTHON_SITEDIR)
SET (PYTHON_SITEDIR ${PYTHON_LIB_DIR}/site-packages)
Index: bindings/perl/CMakeLists.txt
===================================================================
--- bindings/perl/CMakeLists.txt (Revision 10927)
+++ bindings/perl/CMakeLists.txt (Arbeitskopie)
@@ -14,13 +14,17 @@
EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -e "use Config; print
\$Config{ccflags}" OUTPUT_VARIABLE PERL_CCFLAGS)
EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -e "use Config; print
\$Config{archlib}.\"/CORE\"" OUTPUT_VARIABLE PERL_CORE_DIR)
-EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -e "use Config; print
\$Config{installvendorarch}" OUTPUT_VARIABLE PERL_VENDOR_ARCH)
-EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -e "use Config; print
\$Config{installvendorlib}" OUTPUT_VARIABLE PERL_VENDOR_LIB)
+IF(NOT PERL_VENDOR_ARCH)
+ EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -e "use Config; print
\$Config{installvendorarch}" OUTPUT_VARIABLE PERL_VENDOR_ARCH)
+ENDIF(NOT PERL_VENDOR_ARCH)
+IF(NOT PERL_VENDOR_LIB)
+ EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -e "use Config; print
\$Config{installvendorlib}" OUTPUT_VARIABLE PERL_VENDOR_LIB)
+ENDIF(NOT PERL_VENDOR_LIB)
EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -e "use Config; print
\$Config{ccdlflags}" OUTPUT_VARIABLE PERL_LINK_FLAGS)
MESSAGE(STATUS "Perl executable: ${PERL_EXECUTABLE}")
MESSAGE(STATUS "Perl core dir: ${PERL_CORE_DIR}")
-MESSAGE(STATUS "Perl vendor arch dir: ${PERL_VENDORDIR}")
+MESSAGE(STATUS "Perl vendor arch dir: ${PERL_VENDOR_ARCH}")
ADD_DEFINITIONS( ${PERL_CCFLAGS} -Wno-unused -Wno-error )
LINK_DIRECTORIES( ${PERL_CORE_DIR} )
# Generic Makefile.cvs for CMake-based projects:
#
# Create a subdirecory build/ and call cmake from there with /usr prefix.
#
# Intentionally using /usr rather than the default /usr/local since this is for
# internal use, and we are the distribution makers: /usr/local is off limits
# for us.
#
# Author: Stefan Hundhammer <sh@xxxxxxx>
BUILD_SUBDIR = build
HERE_FROM_BUILD_SUBDIR = ..
PREFIX = /home/dl9pf/pfx
CMAKE = /usr/bin/cmake
all: cmake
cmake: create-build-subdir create-toplevel-makefile
( cd $(BUILD_SUBDIR) && $(CMAKE)
-DPYTHON_LIB_DIR=/home/dl9pf/pfx/lib/python/
-DRUBY_VENDORARCH_DIR=/home/dl9pf/pfx/lib/ruby/vendor_ruby/1.8/x86_64-linux/
-DPERL_VENDOR_LIB=/home/dl9pf/pfx/lib/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi/
-DPERL_VENDOR_ARCH=/home/dl9pf/pfx/lib/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi/
-DCMAKE_INSTALL_PREFIX=$(PREFIX) $(HERE_FROM_BUILD_SUBDIR) )
create-build-subdir:
test -d $(BUILD_SUBDIR) || mkdir $(BUILD_SUBDIR)
create-toplevel-makefile:
echo 'all:' >Makefile
echo -e '\t$$(MAKE) $$(MAKEFLAGS) -C $(BUILD_SUBDIR)' >>Makefile
Here are some hacks I use to build satsolver locally without touching the
installed system / build in separate prefix.
Could we add these or such a solution to the repo ?
best regards
Jan-Simon
Index: cmake/modules/FindRuby.cmake
===================================================================
--- cmake/modules/FindRuby.cmake (Revision 10927)
+++ cmake/modules/FindRuby.cmake (Arbeitskopie)
@@ -44,21 +44,22 @@
EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r vendor-specific -e "print
'-rvendor-specific'"
OUTPUT_VARIABLE RUBY_VENDOR_ARG)
-IF(RUBY_VENDOR_ARG)
- EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print
Config::CONFIG['vendorarchdir']"
- OUTPUT_VARIABLE RUBY_VENDORARCH_DIR)
+IF(NOT RUBY_VENDORARCH_DIR)
+ IF(RUBY_VENDOR_ARG)
+ EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print
Config::CONFIG['vendorarchdir']"
+ OUTPUT_VARIABLE RUBY_VENDORARCH_DIR)
+ EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print
Config::CONFIG['vendorlibdir']"
+ OUTPUT_VARIABLE RUBY_VENDORLIB_DIR)
+ ELSE(RUBY_VENDOR_ARG)
+ # fall back to site*dir
+ EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print
Config::CONFIG['sitearchdir']"
+ OUTPUT_VARIABLE RUBY_VENDORARCH_DIR)
- EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print
Config::CONFIG['vendorlibdir']"
- OUTPUT_VARIABLE RUBY_VENDORLIB_DIR)
-ELSE(RUBY_VENDOR_ARG)
- # fall back to site*dir
- EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print
Config::CONFIG['sitearchdir']"
- OUTPUT_VARIABLE RUBY_VENDORARCH_DIR)
+ EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print
Config::CONFIG['sitelibdir']"
+ OUTPUT_VARIABLE RUBY_VENDORLIB_DIR)
+ ENDIF(RUBY_VENDOR_ARG)
+ENDIF(NOT RUBY_VENDORARCH_DIR)
- EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print
Config::CONFIG['sitelibdir']"
- OUTPUT_VARIABLE RUBY_VENDORLIB_DIR)
-ENDIF(RUBY_VENDOR_ARG)
-
# this is not needed if you use "print" inside the ruby statements
# remove the new lines from the output by replacing them with empty strings
#STRING(REPLACE "\n" "" RUBY_ARCH_DIR "${RUBY_ARCH_DIR}")
Index: bindings/python/CMakeLists.txt
===================================================================
--- bindings/python/CMakeLists.txt (Revision 10927)
+++ bindings/python/CMakeLists.txt (Arbeitskopie)
@@ -13,7 +13,9 @@
SET( SWIG_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/satsolver_python.c" )
FIND_PACKAGE(PythonInterp REQUIRED)
-EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout; from
distutils import sysconfig; stdout.write(sysconfig.get_python_lib())"
OUTPUT_VARIABLE PYTHON_LIB_DIR)
+IF(NOT PYTHON_LIB_DIR)
+ EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout;
from distutils import sysconfig; stdout.write(sysconfig.get_python_lib())"
OUTPUT_VARIABLE PYTHON_LIB_DIR)
+ENDIF(NOT PYTHON_LIB_DIR)
IF (NOT PYTHON_SITEDIR)
SET (PYTHON_SITEDIR ${PYTHON_LIB_DIR}/site-packages)
Index: bindings/perl/CMakeLists.txt
===================================================================
--- bindings/perl/CMakeLists.txt (Revision 10927)
+++ bindings/perl/CMakeLists.txt (Arbeitskopie)
@@ -14,13 +14,17 @@
EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -e "use Config; print
\$Config{ccflags}" OUTPUT_VARIABLE PERL_CCFLAGS)
EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -e "use Config; print
\$Config{archlib}.\"/CORE\"" OUTPUT_VARIABLE PERL_CORE_DIR)
-EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -e "use Config; print
\$Config{installvendorarch}" OUTPUT_VARIABLE PERL_VENDOR_ARCH)
-EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -e "use Config; print
\$Config{installvendorlib}" OUTPUT_VARIABLE PERL_VENDOR_LIB)
+IF(NOT PERL_VENDOR_ARCH)
+ EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -e "use Config; print
\$Config{installvendorarch}" OUTPUT_VARIABLE PERL_VENDOR_ARCH)
+ENDIF(NOT PERL_VENDOR_ARCH)
+IF(NOT PERL_VENDOR_LIB)
+ EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -e "use Config; print
\$Config{installvendorlib}" OUTPUT_VARIABLE PERL_VENDOR_LIB)
+ENDIF(NOT PERL_VENDOR_LIB)
EXECUTE_PROCESS(COMMAND ${PERL_EXECUTABLE} -e "use Config; print
\$Config{ccdlflags}" OUTPUT_VARIABLE PERL_LINK_FLAGS)
MESSAGE(STATUS "Perl executable: ${PERL_EXECUTABLE}")
MESSAGE(STATUS "Perl core dir: ${PERL_CORE_DIR}")
-MESSAGE(STATUS "Perl vendor arch dir: ${PERL_VENDORDIR}")
+MESSAGE(STATUS "Perl vendor arch dir: ${PERL_VENDOR_ARCH}")
ADD_DEFINITIONS( ${PERL_CCFLAGS} -Wno-unused -Wno-error )
LINK_DIRECTORIES( ${PERL_CORE_DIR} )
# Generic Makefile.cvs for CMake-based projects:
#
# Create a subdirecory build/ and call cmake from there with /usr prefix.
#
# Intentionally using /usr rather than the default /usr/local since this is for
# internal use, and we are the distribution makers: /usr/local is off limits
# for us.
#
# Author: Stefan Hundhammer <sh@xxxxxxx>
BUILD_SUBDIR = build
HERE_FROM_BUILD_SUBDIR = ..
PREFIX = /home/dl9pf/pfx
CMAKE = /usr/bin/cmake
all: cmake
cmake: create-build-subdir create-toplevel-makefile
( cd $(BUILD_SUBDIR) && $(CMAKE)
-DPYTHON_LIB_DIR=/home/dl9pf/pfx/lib/python/
-DRUBY_VENDORARCH_DIR=/home/dl9pf/pfx/lib/ruby/vendor_ruby/1.8/x86_64-linux/
-DPERL_VENDOR_LIB=/home/dl9pf/pfx/lib/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi/
-DPERL_VENDOR_ARCH=/home/dl9pf/pfx/lib/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi/
-DCMAKE_INSTALL_PREFIX=$(PREFIX) $(HERE_FROM_BUILD_SUBDIR) )
create-build-subdir:
test -d $(BUILD_SUBDIR) || mkdir $(BUILD_SUBDIR)
create-toplevel-makefile:
echo 'all:' >Makefile
echo -e '\t$$(MAKE) $$(MAKEFLAGS) -C $(BUILD_SUBDIR)' >>Makefile
| < Previous | Next > |