summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--win32/Makefile.sub10
-rwxr-xr-xwin32/configure.bat210
-rw-r--r--win32/setup.mak69
3 files changed, 123 insertions, 166 deletions
diff --git a/win32/Makefile.sub b/win32/Makefile.sub
index 6dbb7316f7..b508b50124 100644
--- a/win32/Makefile.sub
+++ b/win32/Makefile.sub
@@ -190,9 +190,6 @@ ruby_version = $(MAJOR).$(MINOR).0
!if defined(ABI_VERSION)
ruby_version = $(ruby_version)+$(ABI_VERSION)
!endif
-!if !defined(RUBY_VERSION_NAME)
-RUBY_VERSION_NAME = $(RUBY_BASE_NAME)-$(ruby_version)
-!endif
RUBY_PROGRAM_VERSION = $(MAJOR).$(MINOR).$(TEENY)
!ifndef RUBY_SO_NAME
@@ -1131,6 +1128,11 @@ s,@TEENY@,$(TEENY),;t t
s,@ruby_version@,$(ruby_version),;t t
s,@RUBY_PROGRAM_VERSION@,$$(MAJOR).$$(MINOR).$$(TEENY),;t t
s,@RUBY_API_VERSION@,$$(MAJOR).$$(MINOR),;t t
+!if defined(RUBY_VERSION_NAME)
+s,@RUBY_VERSION_NAME@,$(RUBY_VERSION_NAME),;t t
+!else
+s,@RUBY_VERSION_NAME@,$$(RUBY_BASE_NAME)-$$(ruby_version),;t t
+!endif
s,@rubylibprefix@,$${prefix}/lib/$${RUBY_BASE_NAME},;t t
s,@rubyarchdir@,$${rubylibdir}/$${arch},;t t
s,@rubylibdir@,$${rubylibprefix}/$${ruby_version},;t t
@@ -1140,7 +1142,7 @@ s,@sitelibdir@,$${sitedir}/$${ruby_version},;t t
s,@vendordir@,$${rubylibprefix}/vendor_ruby,;t t
s,@vendorarchdir@,$${vendorlibdir}/$${sitearch},;t t
s,@vendorlibdir@,$${vendordir}/$${ruby_version},;t t
-s,@rubyhdrdir@,$$(includedir)/$${RUBY_BASE_NAME}-$$(ruby_version),;t t
+s,@rubyhdrdir@,$$(includedir)/$$(RUBY_VERSION_NAME),;t t
s,@sitehdrdir@,$$(rubyhdrdir)/site_ruby,;t t
s,@vendorhdrdir@,$$(rubyhdrdir)/vendor_ruby,;t t
s,@rubyarchhdrdir@,$$(rubyhdrdir)/$${arch},;t t
diff --git a/win32/configure.bat b/win32/configure.bat
index 853f73b5d3..44385c070e 100755
--- a/win32/configure.bat
+++ b/win32/configure.bat
@@ -10,13 +10,16 @@ for %%I in (%0) do if /%%~dpI/ == /%CD%\/ (
set XINCFLAGS=
set XLDFLAGS=
-echo> ~tmp~.mak ####
-echo>> ~tmp~.mak conf = %0
-echo>> ~tmp~.mak $(conf): nul
-echo>> ~tmp~.mak @del ~setup~.mak
-echo>> ~tmp~.mak @$(MAKE) -l$(MAKEFLAGS) -f $(@D)/setup.mak \
-if exist pathlist.tmp del pathlist.tmp
-echo>confargs.tmp #define CONFIGURE_ARGS \
+set conf=%0
+set pathlist=
+set config_make=confargs~%RANDOM%.mak
+set confargs=%config_make:.mak=.c%
+echo>%config_make% # CONFIGURE
+(
+ echo #define $ $$ //
+ echo !ifndef CONFIGURE_ARGS
+ echo #define CONFIGURE_ARGS \
+) >%confargs%
:loop
set opt=%1
if "%1" == "" goto :end
@@ -28,6 +31,7 @@ if "%1" == "target" goto :target
if "%1" == "--with-static-linked-ext" goto :extstatic
if "%1" == "--program-prefix" goto :pprefix
if "%1" == "--program-suffix" goto :suffix
+if "%1" == "--program-transform-name" goto :transform_name
if "%1" == "--program-name" goto :installname
if "%1" == "--install-name" goto :installname
if "%1" == "--so-name" goto :soname
@@ -59,166 +63,170 @@ if "%opt:~0,7%" == "--with-" goto :witharg
if "%1" == "-h" goto :help
if "%1" == "--help" goto :help
if "%opt:~0,1%" == "-" (
- echo>>confargs.tmp %1 \
+ echo>>%confargs% %1 \
set witharg=
) else if "%witharg%" == "" (
- echo>>confargs.tmp %1 \
+ echo>>%confargs% %1 \
) else (
- echo>>confargs.tmp ,%1\
+ echo>>%confargs% ,%1\
)
shift
goto :loop ;
:srcdir
- echo>> ~tmp~.mak "srcdir=%~2" \
- echo>>confargs.tmp --srcdir=%2 \
+ echo>> %config_make% srcdir = %~2
+ echo>>%confargs% --srcdir=%2 \
shift
shift
goto :loop ;
:prefix
- echo>> ~tmp~.mak "prefix=%~2" \
- echo>>confargs.tmp %1=%2 \
+ echo>> %config_make% prefix = %~2
+ echo>>%confargs% %1=%2 \
shift
shift
goto :loop ;
:pprefix
- echo>> ~tmp~.mak "PROGRAM_PREFIX=%~2" \
- echo>>confargs.tmp %1=%2 \
+ echo>> %config_make% PROGRAM_PREFIX = %~2
+ echo>>%confargs% %1=%2 \
shift
shift
goto :loop ;
:suffix
- echo>> ~tmp~.mak "PROGRAM_SUFFIX=%~2" \
- echo>>confargs.tmp %1=%2 \
+ echo>> %config_make% PROGRAM_SUFFIX = %~2
+ echo>>%confargs% %1=%2 \
shift
shift
goto :loop ;
:installname
- echo>> ~tmp~.mak "RUBY_INSTALL_NAME=%~2" \
- echo>>confargs.tmp %1=%2 \
+ echo>> %config_make% RUBY_INSTALL_NAME = %~2
+ echo>>%confargs% %1=%2 \
shift
shift
goto :loop ;
:soname
- echo>> ~tmp~.mak "RUBY_SO_NAME=%~2" \
- echo>>confargs.tmp %1=%2 \
+ echo>> %config_make% RUBY_SO_NAME = %~2
+ echo>>%confargs% %1=%2 \
+ shift
+ shift
+goto :loop ;
+:transform_name
+
shift
shift
goto :loop ;
:target
- echo>> ~tmp~.mak "%~2" \
- echo>>confargs.tmp --target=%2 \
- if NOT "%~2" == "x64-mswin64" goto target3
-:target2
- echo>> ~tmp~.mak "TARGET_OS=mswin64" \
-:target3
+ echo>> %config_make% target = %~2
+ echo>>%confargs% --target=%2 \
+ if "%~2" == "x64-mswin64" (
+ echo>> %config_make% TARGET_OS = mswin64
+ )
shift
shift
goto :loop ;
:extstatic
- echo>> ~tmp~.mak "EXTSTATIC=static" \
- echo>>confargs.tmp %1 \
+ echo>> %config_make% EXTSTATIC = static
+ echo>>%confargs% %1 \
shift
goto :loop ;
:enable-rdoc
- echo>> ~tmp~.mak "RDOCTARGET=rdoc" \
- echo>>confargs.tmp %1 \
+ echo>> %config_make% RDOCTARGET = rdoc
+ echo>>%confargs% %1 \
shift
goto :loop ;
:disable-rdoc
- echo>> ~tmp~.mak "RDOCTARGET=nodoc" \
- echo>>confargs.tmp %1 \
+ echo>> %config_make% RDOCTARGET = nodoc
+ echo>>%confargs% %1 \
shift
goto :loop ;
:enable-lib
- echo>> ~tmp~.mak "INSTALL_STATIC_LIBRARY=yes" \
- echo>>confargs.tmp %1 \
+ echo>> %config_make% INSTALL_STATIC_LIBRARY = yes
+ echo>>%confargs% %1 \
shift
goto :loop ;
:disable-lib
- echo>> ~tmp~.mak "INSTALL_STATIC_LIBRARY=no" \
- echo>>confargs.tmp %1 \
+ echo>> %config_make% INSTALL_STATIC_LIBRARY = no
+ echo>>%confargs% %1 \
shift
goto :loop ;
:enable-debug-env
- echo>> ~tmp~.mak "ENABLE_DEBUG_ENV=yes" \
- echo>>confargs.tmp %1 \
+ echo>> %config_make% ENABLE_DEBUG_ENV = yes
+ echo>>%confargs% %1 \
shift
goto :loop ;
:disable-debug-env
- echo>> ~tmp~.mak "ENABLE_DEBUG_ENV=no" \
- echo>>confargs.tmp %1 \
+ echo>> %config_make% ENABLE_DEBUG_ENV = no
+ echo>>%confargs% %1 \
shift
goto :loop ;
:enable-devel
- echo>> ~tmp~.mak "RUBY_DEVEL=yes" \
- echo>>confargs.tmp %1 \
+ echo>> %config_make% RUBY_DEVEL = yes
+ echo>>%confargs% %1 \
shift
goto :loop ;
:disable-devel
- echo>> ~tmp~.mak "RUBY_DEVEL=no" \
- echo>>confargs.tmp %1 \
+ echo>> %config_make% RUBY_DEVEL = no
+ echo>>%confargs% %1 \
shift
goto :loop ;
:enable-rubygems
- echo>> ~tmp~.mak "USE_RUBYGEMS=yes" \
- echo>>confargs.tmp %1 \
+ echo>> %config_make% USE_RUBYGEMS = yes
+ echo>>%confargs% %1 \
shift
goto :loop ;
:disable-rubygems
- echo>> ~tmp~.mak "USE_RUBYGEMS=no" \
- echo>>confargs.tmp %1 \
+ echo>> %config_make% USE_RUBYGEMS = no
+ echo>>%confargs% %1 \
shift
goto :loop ;
:ntver
- echo>> ~tmp~.mak "NTVER=%~2" \
- echo>>confargs.tmp %1=%2 \
+ echo>> %config_make% NTVER = %~2
+ echo>>%confargs% %1=%2 \
shift
shift
goto :loop ;
:extout
- echo>> ~tmp~.mak "EXTOUT=%~2" \
- echo>>confargs.tmp %1=%2 \
+ if not "%~2" == ".ext" (echo>> %config_make% EXTOUT = %~2)
+ echo>>%confargs% %1=%2 \
shift
shift
goto :loop ;
:path
- echo>>pathlist.tmp %~2;\
- echo>>confargs.tmp %1=%2 \
+ set pathlist=%pathlist%%~2;
+ echo>>%confargs% %1=%2 \
shift
shift
goto :loop ;
:baseruby
- echo>> ~tmp~.mak "BASERUBY=%~2" \
- echo>>confargs.tmp %1=%2 \
+ echo>> %config_make% BASERUBY = %~2
+ echo>>%confargs% %1=%2 \
shift
shift
goto :loop ;
:nobaseruby
- echo>> ~tmp~.mak "HAVE_BASERUBY=no" \
- echo>>confargs.tmp %1=%2 \
+ echo>> %config_make% HAVE_BASERUBY = no
+ echo>>%confargs% %1=%2 \
shift
goto :loop ;
:libdir
- echo>> ~tmp~.mak "libdir_basename=%~2" \
- echo>>confargs.tmp %1=%2 \
+ echo>> %config_make% libdir_basename = %~2
+ echo>>%confargs% %1=%2 \
shift
shift
goto :loop ;
:git
- echo>> ~tmp~.mak "GIT=%~2" \
- echo>>confargs.tmp %1=%2 \
+ echo>> %config_make% GIT = %~2
+ echo>>%confargs% %1=%2 \
shift
shift
goto :loop ;
:nogit
- echo>> ~tmp~.mak "GIT=never-use" \
- echo>> ~tmp~.mak "HAVE_GIT=no" \
- echo>>confargs.tmp %1 \
+ echo>> %config_make% GIT = never-use
+ echo>> %config_make% HAVE_GIT = no
+ echo>>%confargs% %1 \
shift
goto :loop ;
:gmp
- echo>> ~tmp~.mak "WITH_GMP=yes" \
- echo>>confargs.tmp %1=1 \
+ echo>> %config_make% WITH_GMP = yes
+ echo>>%confargs% %1=1 \
shift
shift
goto :loop ;
@@ -233,13 +241,13 @@ goto :loop ;
)
)
:witharg
- echo>>confargs.tmp %1=%2\
+ echo>>%confargs% %1=%2\
set witharg=1
shift
shift
goto :loop ;
:withoutarg
- echo>>confargs.tmp %1 \
+ echo>>%confargs% %1 \
shift
goto :loop ;
:help
@@ -259,35 +267,41 @@ goto :loop ;
echo --disable-install-doc do not install rdoc indexes during install
echo --with-ntver=0xXXXX target NT version (shouldn't use with old SDK)
echo Note that `,' and `;' need to be enclosed within double quotes in batch file command line.
- del *.tmp
- del ~tmp~.mak
+ del %confargs% %config_make%
goto :exit
:end
-echo>> ~tmp~.mak WIN32DIR=$(@D:\=/)
-echo.>>confargs.tmp
-echo>confargs.c #define $ $$ //
-echo>>confargs.c !ifndef CONFIGURE_ARGS
-type>>confargs.c confargs.tmp
-echo>>confargs.c configure_args = CONFIGURE_ARGS
-echo>>confargs.c !endif
-echo>>confargs.c #undef $
-if exist pathlist.tmp echo>>confargs.c #define PATH_LIST \
-if exist pathlist.tmp type>>confargs.c pathlist.tmp
-if exist pathlist.tmp echo.>>confargs.c
-if exist pathlist.tmp echo>>confargs.c pathlist = PATH_LIST
-cl -EP confargs.c > ~setup~.mak 2>nul
-if exist pathlist.tmp echo>>~setup~.mak PATH = $(pathlist:;=/bin;)$(PATH)
-if exist pathlist.tmp echo>>~setup~.mak INCLUDE = $(pathlist:;=/include;)
-if exist pathlist.tmp echo>>~setup~.mak LIB = $(pathlist:;=/lib;)
-echo>>~setup~.mak XINCFLAGS = %XINCFLAGS%
-echo>>~setup~.mak XLDFLAGS = %XLDFLAGS%
-type>>~setup~.mak ~tmp~.mak
-del *.tmp > nul
-del ~tmp~.mak > nul
-echo>>~setup~.mak @if exist Makefile.old del Makefile.old
-echo>>~setup~.mak @if exist Makefile ren Makefile Makefile.old
-echo>>~setup~.mak @ren Makefile.new Makefile
-nmake -alf ~setup~.mak MAKEFILE=Makefile.new
+(
+ echo //
+ echo configure_args = CONFIGURE_ARGS
+ echo !endif
+ echo #undef $
+) >> %confargs%
+(
+ cl -EP %confargs% 2>nul | findstr "! ="
+ echo.
+ if NOT "%XINCFLAGS%" == "" echo XINCFLAGS = %XINCFLAGS%
+ if NOT "%XLDFLAGS%" == "" echo XLDFLAGS = %XLDFLAGS%
+ if NOT "%pathlist%" == "" (
+ call echo PATH = %%pathlist:;=/bin;%%$^(PATH^)
+ call echo INCLUDE = %%pathlist:;=/include;%%$^(INCLUDE^)
+ call echo LIB = %%pathlist:;=/lib;%%$^(LIB^)
+ )
+) >> %config_make%
+del %confargs% > nul
+
+set setup_make=%config_make:confargs=setup%
+(
+ echo #### -*- makefile -*-
+ echo conf = %conf%
+ echo $^(conf^): nul
+ echo @del %setup_make%
+ echo @$^(MAKE^) -l$^(MAKEFLAGS^) -f $^(@D^)/setup.mak \
+ echo WIN32DIR=$^(@D:\=/^) config_make=%config_make%
+ echo -@move /y Makefile Makefile.old ^> nul 2^> nul
+ echo @ren Makefile.new Makefile
+) > %setup_make%
+nmake -alf %setup_make% MAKEFILE=Makefile.new
+
exit /b %ERRORLEVEL%
:exit
@endlocal
diff --git a/win32/setup.mak b/win32/setup.mak
index 3660e5f060..c99ac0ba72 100644
--- a/win32/setup.mak
+++ b/win32/setup.mak
@@ -1,5 +1,7 @@
# -*- makefile -*-
+!include $(config_make)
+
!if "$(srcdir)" != ""
WIN32DIR = $(srcdir)/win32
!elseif "$(WIN32DIR)" == "win32"
@@ -40,51 +42,13 @@ x64-mswin64: -prologue- -x64- -epilogue-
MAKE = nmake
srcdir = $(srcdir:\=/)
prefix = $(prefix:\=/)
-!if defined(libdir_basename)
-libdir_basename = $(libdir_basename)
-!endif
-EXTSTATIC = $(EXTSTATIC)
-!if defined(RDOCTARGET)
-RDOCTARGET = $(RDOCTARGET)
-!endif
-!if defined(EXTOUT) && "$(EXTOUT)" != ".ext"
-EXTOUT = $(EXTOUT)
-!endif
-!if defined(NTVER)
-NTVER = $(NTVER)
-!endif
-!if defined(USE_RUBYGEMS)
-USE_RUBYGEMS = $(USE_RUBYGEMS)
-!endif
-!if defined(ENABLE_DEBUG_ENV)
-ENABLE_DEBUG_ENV = $(ENABLE_DEBUG_ENV)
-!endif
-!if defined(RJIT_SUPPORT)
-RJIT_SUPPORT = $(RJIT_SUPPORT)
-!endif
-!if defined(XINCFLAGS)
-CPPFLAGS = $(XINCFLAGS)
-!endif
-!if defined(XLDFLAGS)
-XLDFLAGS = $(XLDFLAGS)
-!endif
-# TOOLS
<<
+ @type $(config_make) >>$(MAKEFILE)
+ @del $(config_make) > nul
!if defined(BASERUBY)
$(BASERUBY:/=\) "$(srcdir)/tool/missing-baseruby.bat"
- @echo BASERUBY = $(BASERUBY:/=\)>> $(MAKEFILE)
-!endif
-!if "$(RUBY_DEVEL)" == "yes"
- RUBY_DEVEL = yes
-!endif
-!if "$(GIT)" != ""
- @echo GIT = $(GIT)>> $(MAKEFILE)
!endif
-!if "$(HAVE_GIT)" != ""
- @echo HAVE_GIT = $(HAVE_GIT)>> $(MAKEFILE)
-!endif
-
!if "$(WITH_GMP)" != "no"
@($(CC) $(XINCFLAGS) <<conftest.c -link $(XLDFLAGS) gmp.lib > nul && (echo USE_GMP = yes) || exit /b 0) >>$(MAKEFILE)
#include <gmp.h>
@@ -235,24 +199,6 @@ set MSC_VER
del %0 & exit
<<
--program-name-:
- @type << >>$(MAKEFILE)
-
-# PROGRAM-NAME
-!ifdef PROGRAM_PREFIX
-PROGRAM_PREFIX = $(PROGRAM_PREFIX)
-!endif
-!ifdef PROGRAM_SUFFIX
-PROGRAM_SUFFIX = $(PROGRAM_SUFFIX)
-!endif
-!ifdef RUBY_INSTALL_NAME
-RUBY_INSTALL_NAME = $(RUBY_INSTALL_NAME)
-!endif
-!ifdef RUBY_SO_NAME
-RUBY_SO_NAME = $(RUBY_SO_NAME)
-!endif
-<<
-
-generic-: nul
@$(CPP) <<conftest.c 2>nul | findstr = >>$(MAKEFILE)
#if defined _M_X64
@@ -281,7 +227,7 @@ MACHINE = x86
-i686-: -ix86-
@echo $(CPU) = 6>>$(MAKEFILE)
--epilogue-: -compiler- -program-name- -encs-
+-epilogue-: -compiler- -encs-
-encs-: nul
@$(APPEND)
@@ -289,11 +235,6 @@ MACHINE = x86
@$(MAKE) -l -f $(srcdir)/win32/enc-setup.mak srcdir="$(srcdir)" MAKEFILE=$(MAKEFILE)
-epilogue-: nul
-!if exist(confargs.c)
- @$(APPEND)
- @$(CPP) confargs.c 2>&1 | findstr "! =" >> $(MAKEFILE)
- @del confargs.c
-!endif
@type << >>$(MAKEFILE)
# RUBY_INSTALL_NAME = ruby