From: "jstribny (Josef Stribny)" Date: 2013-06-10T20:14:30+09:00 Subject: [ruby-core:55409] [Backport 200 - Backport #8115] make install DESTDIR=/my/install/path fails Issue #8115 has been updated by jstribny (Josef Stribny). This doesn't seem to help. I am still getting the following error with the generated Makefile[1] ``` + ruby extconf.rb --vendor --with-mysql-config checking for mysql_ssl_set()... yes checking for rb_str_set_len()... yes checking for rb_thread_start_timer()... no checking for mysql.h... yes extconf.rb:40:in `
': Use RbConfig instead of obsolete and deprecated Config. extconf.rb:40:in `
': Use RbConfig instead of obsolete and deprecated Config. creating Makefile + make -j4 gcc -I. -I/usr/include/x86_64-linux -I/usr/include/ruby/backward -I/usr/include -I. -DHAVE_MYSQL_SSL_SET -DHAVE_RB_STR_SET_LEN -DHAVE_MYSQL_H -I/usr/include/mysql -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC -g -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing -DMY_PTHREAD_FASTMUTEX=1 -fPIC -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -m64 -o mysql.o -c mysql.c rm -f mysql.so gcc -shared -o mysql.so mysql.o -L. -L/usr/lib64 -L. -Wl,-z,relro -fstack-protector -rdynamic -Wl,-export-dynamic -m64 -lruby -L/usr/lib64/mysql -lmysqlclient -lpthread -lz -lm -lssl -lcrypto -ldl -lpthread -lrt -ldl -lcrypt -lm -lc + exit 0 ... + make install DESTDIR=/builddir/build/BUILDROOT/ruby-mysql-2.8.2-9.fc20.x86_64 make: *** No rule to make target `/builddir/build/BUILDROOT/ruby-mysql-2.8.2-9.fc20.x86_64/usr/include/ruby.h', needed by `mysql.o'. Stop. ``` Ruby version: # ruby -v ruby 2.0.0p214 (2013-06-09 revision 41193) [x86_64-linux] [1] https://gist.github.com/strzibny/5748006 ---------------------------------------- Backport #8115: make install DESTDIR=/my/install/path fails https://bugs.ruby-lang.org/issues/8115#change-39833 Author: vo.x (Vit Ondruch) Status: Closed Priority: Normal Assignee: nagachika (Tomoyuki Chikanaga) Category: Target version: =begin In Fedora packaging, we used to use (({make install DESTDIR=/my/install/path})) to install compiled extension into the folder, which RPM used to pick up the extension. However, since Ruby 2.0.0, this approach fails with message such as; make install DESTDIR=/builddir/build/BUILDROOT/ruby-mysql-2.8.2-9.fc20.i386 make: *** No rule to make target `/builddir/build/BUILDROOT/ruby-mysql-2.8.2-9.fc20.i386/usr/include/ruby.h', needed by `mysql.o'. Stop. Apparently, the mkmf creates Makefile, where everything depends on DESTDIR (see the diff of makefiles here [1]). This is wrong IMO, since obviously Ruby's header files location has nothing to do with location I'd like to install my libraries. Could you fix this issue? Or if that was always wrong approach, could you provide us better one? Please note that this was originally reported here: https://bugzilla.redhat.com/show_bug.cgi?id=921650 [1] https://gist.github.com/voxik/5186924 =end -- http://bugs.ruby-lang.org/