Project

General

Profile

Actions

Bug #9213

closed

mkmf.rb emits invalid destination directory name for mswin32/64

Added by arton (Akio Tajima) about 11 years ago. Updated about 5 years ago.

Status:
Closed
Target version:
-
ruby -v:
ruby 2.0.0p353 (2013-11-22) [i386-mswin32_100]
Backport:
[ruby-core:58856]

Description

The install process of traditional extended library (=non gem) uses extconf.rb for creating Makefile and install the library by (n)make install.
However it does not work correctly because of FileUtil.mkdir met bad directory name as 'c:c:/...'.

This is caused by DESTDIR and prefix combination.
When one does not specify DESTDIR, rbconfig.rb create it as 'DESTDIR = TOPDIR && TOPDIR[/\A[a-z]:/i] || '' unless defined? DESTDIR' #=> 'C:' or 'D:'.
By the other hand CONFIG['prefix'] is (TOPDIR || DESTDIR + '/usr') so the prefixdir also contains 'c:' or 'd:' ...

The definition for install directories in mkmf.rb is defined as both DESTDIR and CONFIG['prefix'] directory for example '$(DESTDIR)$(vendorarchdir)$(target_prefix)'.
It causes the double drive letter name 'c:c:...'.

While there are some workarounds as using setup.rb or gem, it's harmful for the testing phase of extended libraries.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0