1# -*- makefile -*-
2
3!if "$(srcdir)" != ""
4WIN32DIR = $(srcdir)/win32
5!elseif "$(WIN32DIR)" == "win32"
6srcdir = .
7!elseif "$(WIN32DIR)" == "$(WIN32DIR:/win32=)/win32"
8srcdir = $(WIN32DIR:/win32=)
9!else
10srcdir = $(WIN32DIR)/..
11!endif
12!ifndef prefix
13prefix = /usr
14!endif
15BANG = !
16APPEND = echo.>>$(MAKEFILE)
17!ifdef MAKEFILE
18MAKE = $(MAKE) -f $(MAKEFILE)
19!else
20MAKEFILE = Makefile
21!endif
22ARCH = PROCESSOR_ARCHITECTURE
23CPU = PROCESSOR_LEVEL
24CC = cl -nologo
25CPP = $(CC) -EP
26
27all: -prologue- -generic- -epilogue-
28i386-mswin32: -prologue32- -i386- -epilogue-
29i486-mswin32: -prologue32- -i486- -epilogue-
30i586-mswin32: -prologue32- -i586- -epilogue-
31i686-mswin32: -prologue32- -i686- -epilogue-
32alpha-mswin32: -prologue32- -alpha- -epilogue-
33x64-mswin64: -prologue64- -x64- -epilogue-
34ia64-mswin64: -prologue64- -ia64- -epilogue-
35
36-prologue-: -basic-vars- -system-vars- -version- -program-name-
37
38-prologue32-: -basic-vars- -system-vars32- -version- -program-name-
39
40-prologue64-: -basic-vars- -system-vars64- -version- -program-name-
41
42-basic-vars-: nul
43	@type << > $(MAKEFILE)
44### Makefile for ruby $(TARGET_OS) ###
45MAKE = nmake
46srcdir = $(srcdir:\=/)
47prefix = $(prefix:\=/)
48EXTSTATIC = $(EXTSTATIC)
49!if defined(RDOCTARGET)
50RDOCTARGET = $(RDOCTARGET)
51!endif
52!if defined(EXTOUT)
53EXTOUT = $(EXTOUT)
54!endif
55!if defined(BASERUBY)
56BASERUBY = $(BASERUBY:/=\)
57!endif
58!if defined(NTVER)
59NTVER = $(NTVER)
60!endif
61!if defined(USE_RUBYGEMS)
62USE_RUBYGEMS = $(USE_RUBYGEMS)
63!endif
64
65<<
66!if !defined(BASERUBY)
67	@for %I in (ruby.exe) do @echo BASERUBY = %~s$$PATH:I>> $(MAKEFILE)
68	@echo !if "$$(BASERUBY)" == "">> $(MAKEFILE)
69	@echo BASERUBY = echo executable host ruby is required.  use --with-baseruby option.^& exit 1 >> $(MAKEFILE)
70	@echo !endif>> $(MAKEFILE)
71!endif
72
73-system-vars-: -osname- -runtime-
74
75-system-vars32-: -osname32- -runtime-
76
77-system-vars64-: -osname64- -runtime-
78
79-osname32-: nul
80	@echo TARGET_OS = mswin32>>$(MAKEFILE)
81
82-osname64-: nul
83	@echo TARGET_OS = mswin64>>$(MAKEFILE)
84
85-osname-: nul
86	@echo !ifndef TARGET_OS>>$(MAKEFILE)
87	@($(CC) -c <<conftest.c > nul && (echo TARGET_OS = mswin32) || (echo TARGET_OS = mswin64)) >>$(MAKEFILE)
88#ifdef _WIN64
89#error
90#endif
91<<
92	@echo !endif>>$(MAKEFILE)
93	@$(WIN32DIR:/=\)\rm.bat conftest.*
94
95-runtime-: nul
96	@$(CC) -MD <<conftest.c user32.lib -link > nul
97#include <stdio.h>
98int main(void) {FILE *volatile f = stdin; return 0;}
99<<
100	@$(WIN32DIR:/=\)\rtname conftest.exe >>$(MAKEFILE)
101	@$(WIN32DIR:/=\)\rm.bat conftest.*
102
103-version-: nul
104	@$(APPEND)
105	@$(CPP) -I$(srcdir) -I$(srcdir)/include <<"Creating $(MAKEFILE)" | findstr "=" >>$(MAKEFILE)
106#define RUBY_REVISION 0
107#include "version.h"
108MAJOR = RUBY_API_VERSION_MAJOR
109MINOR = RUBY_API_VERSION_MINOR
110TEENY = RUBY_API_VERSION_TEENY
111MSC_VER = _MSC_VER
112<<
113
114-program-name-:
115	@type << >>$(MAKEFILE)
116!ifdef PROGRAM_PREFIX
117PROGRAM_PREFIX = $(PROGRAM_PREFIX)
118!endif
119!ifdef PROGRAM_SUFFIX
120PROGRAM_SUFFIX = $(PROGRAM_SUFFIX)
121!endif
122!ifdef RUBY_INSTALL_NAME
123RUBY_INSTALL_NAME = $(RUBY_INSTALL_NAME)
124!endif
125!ifdef RUBY_SO_NAME
126RUBY_SO_NAME = $(RUBY_SO_NAME)
127!endif
128<<
129
130-generic-: nul
131!if defined($(ARCH)) || defined($(CPU))
132	@type << >>$(MAKEFILE)
133!if defined($(ARCH))
134!if "$(PROCESSOR_ARCHITECTURE)" == "AMD64"
135$(ARCH) = x64
136!elseif "$(PROCESSOR_ARCHITECTURE)" == "IA64"
137$(ARCH) = ia64
138!elseif defined(PROCESSOR_ARCHITEW6432)
139$(BANG)if "$$(TARGET_OS)" == "mswin64"
140!if "$(PROCESSOR_ARCHITECTURE)" == "IA64"
141$(ARCH) = ia64
142!else
143$(ARCH) = x64
144!endif
145$(BANG)else
146$(ARCH) = $(PROCESSOR_ARCHITECTURE)
147$(BANG)endif
148!else
149$(ARCH) = $(PROCESSOR_ARCHITECTURE)
150!endif
151!endif
152!if defined($(CPU))
153$(CPU) = $(PROCESSOR_LEVEL)
154!endif
155
156<<
157!endif
158
159-alpha-: nul
160	@echo $(ARCH) = alpha>>$(MAKEFILE)
161-x64-: nul
162	@echo $(ARCH) = x64>>$(MAKEFILE)
163-ia64-: nul
164	@echo $(ARCH) = ia64>>$(MAKEFILE)
165-ix86-: nul
166	@echo $(ARCH) = x86>>$(MAKEFILE)
167
168-i386-: -ix86-
169	@echo $(CPU) = 3>>$(MAKEFILE)
170-i486-: -ix86-
171	@echo $(CPU) = 4>>$(MAKEFILE)
172-i586-: -ix86-
173	@echo $(CPU) = 5>>$(MAKEFILE)
174-i686-: -ix86-
175	@echo $(CPU) = 6>>$(MAKEFILE)
176
177-epilogue-: -encs-
178
179-encs-: nul
180	@$(MAKE) -l -f $(srcdir)/win32/enc-setup.mak srcdir="$(srcdir)" MAKEFILE=$(MAKEFILE)
181
182-epilogue-: nul
183!if exist(confargs.c)
184	@$(APPEND)
185	@$(CPP) confargs.c 2>&1 | findstr "! =" >> $(MAKEFILE)
186	@del confargs.c
187!endif
188	@type << >>$(MAKEFILE)
189
190# RUBY_INSTALL_NAME = ruby
191# RUBY_SO_NAME = $$(RT)-$$(RUBY_INSTALL_NAME)$$(MAJOR)$$(MINOR)
192# CFLAGS = -nologo -MD $$(DEBUGFLAGS) $$(OPTFLAGS) $$(PROCESSOR_FLAG)
193# CPPFLAGS = -I. -I$$(srcdir) -I$$(srcdir)/missing -DLIBRUBY_SO=\"$$(LIBRUBY_SO)\"
194# STACK = 0x2000000
195# LDFLAGS = $$(CFLAGS) -Fm
196# XLDFLAGS = 
197# RFLAGS = -r
198# EXTLIBS =
199
200$(BANG)include $$(srcdir)/win32/Makefile.sub
201<<
202	@$(COMSPEC) /C $(srcdir:/=\)\win32\rm.bat config.h config.status
203	@echo "type `nmake' to make ruby."
204