summaryrefslogtreecommitdiff
path: root/win32/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'win32/Makefile')
-rw-r--r--win32/Makefile233
1 files changed, 233 insertions, 0 deletions
diff --git a/win32/Makefile b/win32/Makefile
new file mode 100644
index 0000000000..4927e05631
--- /dev/null
+++ b/win32/Makefile
@@ -0,0 +1,233 @@
+SHELL = $(COMPSEC)
+
+#### Start of system configuration section. ####
+
+srcdir = .
+VPATH = .:./missing
+
+CC = cl
+YACC = byacc
+RANLIB =
+AR =
+INSTALL = ginstall -c
+INSTALL_PROGRAM = $(INSTALL)
+INSTALL_DATA = $(INSTALL) -m 644
+PURIFY =
+
+
+#CFLAGS = -nologo -DNT=1 -Ox
+#LDFLAGS = $(CFLAGS) -Fm
+CFLAGS = -nologo -DNT=1 -Zi -MD
+LDFLAGS = $(CFLAGS) -Fm -MD
+LIBS = $(EXTLIBS) advapi32.lib wsock32.lib
+MISSING = crypt.obj flock.obj setenv.obj alloca.obj nt.obj
+
+prefix =
+binprefix =
+exec_prefix =
+bindir =
+libdir =
+
+STACK = 0x200000
+
+#### End of system configuration section. ####
+
+
+LIBRUBY = libruby.lib
+
+EXTOBJS = dmyext.obj
+
+MAINOBJ = main.obj
+
+OBJS = array.obj \
+ bignum.obj \
+ class.obj \
+ compar.obj \
+ dir.obj \
+ dln.obj \
+ enum.obj \
+ error.obj \
+ eval.obj \
+ file.obj \
+ fnmatch.obj \
+ gc.obj \
+ glob.obj \
+ hash.obj \
+ inits.obj \
+ io.obj \
+ math.obj \
+ numeric.obj \
+ object.obj \
+ pack.obj \
+ parse.obj \
+ process.obj \
+ random.obj \
+ range.obj \
+ re.obj \
+ regex.obj \
+ ruby.obj \
+ signal.obj \
+ sprintf.obj \
+ st.obj \
+ string.obj \
+ struct.obj \
+ time.obj \
+ util.obj \
+ variable.obj \
+ version.obj \
+ $(MISSING)
+
+all: miniruby.exe ext/Setup
+ cd ext
+ ..\miniruby .\extmk.rb static
+ cd ..
+
+miniruby.exe: $(OBJS) $(MAINOBJ) $(EXTOBJS)
+ @echo $(EXTOBJS)
+ @echo $(LIBS)
+ @rm -f miniruby.exe
+# $(PURIFY) $(CC) $(LDFLAGS) $(MAINOBJ) $(OBJS) $(EXTOBJS) $(LIBS) -o miniruby.exe
+ $(PURIFY) $(CC) $(LDFLAGS) $(MAINOBJ) $(OBJS) $(EXTOBJS) $(LIBS) -o miniruby.exe -link /NOD:LIBC
+
+ruby.exe: $(LIBRUBY) $(MAINOBJ) $(EXTOBJS) ruby.dll
+ @echo $(EXTOBJS)
+ @echo $(LIBS)
+ @rm -f ruby.exe
+# $(PURIFY) $(CC) $(LDFLAGS) $(MAINOBJ) $(EXTOBJS) $(LIBRUBY) $(LIBS) -o ruby.exe
+# $(PURIFY) $(CC) $(LDFLAGS) $(MAINOBJ) $(EXTOBJS) $(LIBRUBY) $(LIBS) -o ruby.exe -link /DEF:rubyexe.def /NOD:LIBC
+ $(CC) $(LDFLAGS) $(MAINOBJ) -o ruby.exe ruby.lib -link /NOD:LIBC /STACK:$(STACK)
+
+ruby.dll: $(LIBRUBY) $(EXTOBJS)
+ @echo $(EXTOBJS)
+ @echo $(LIBS)
+ @rm -f ruby.dll
+ $(PURIFY) $(CC) $(LDFLAGS) $(MAINOBJ) $(EXTOBJS) $(LIBRUBY) $(LIBS) -o ruby.dll -link /DLL /DEF:ruby.def /NOD:LIBC
+
+$(LIBRUBY): $(OBJS)
+ lib /OUT:$(LIBRUBY) $(OBJS)
+
+install:; $(INSTALL_PROGRAM) ruby.exe $(bindir)/ruby.exe
+ @-strip $(bindir)/ruby
+ @test -d $(libdir) || mkdir $(libdir)
+ cd ext; ../miniruby ./extmk.rb install
+ @for rb in `grep '^lib/' MANIFEST`; do \
+ $(INSTALL_DATA) $$rb $(libdir); \
+ done
+
+clean:; @rm -f $(OBJS) $(LIBRUBY) main.obj dmyext.obj *.pdb *.map *.exp
+ @rm -f ext/extinit.c ext/extinit.obj
+ cd ext
+ ..\miniruby .\extmk.rb clean
+ cd ..
+
+realclean: clean
+ @rm -f Makefile ext/extmk.rb
+ @rm -f config.cache config.h config.log config.status
+ @rm -f core ruby miniruby *~
+
+test:; @-./ruby sample/test.rb > ./ruby_test 2>&1; \
+ if grep '^end of test' ./ruby_test > /dev/null; then \
+ echo "test succeeded"; \
+ else \
+ grep '^sample/test.rb' ./ruby_test; \
+ grep '^not' ./ruby_test; \
+ echo "test failed";\
+ fi;\
+ rm -f ./ruby_test
+
+.c.obj:
+ $(CC) $(CFLAGS) $(CPPFLAGS) -c $<
+
+alloca.obj: missing/alloca.c
+ $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c missing/alloca.c
+
+crypt.obj: missing/crypt.c
+ $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c missing/crypt.c
+
+dup2.obj: missing/dup2.c
+ $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c missing/dup2.c
+
+flock.obj: missing/flock.c
+ $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c missing/flock.c
+
+memmove.obj: missing/memmove.c
+ $(CC) $(CFLAGS) $(CPPFLAGS) -c missing/memmove.c
+
+mkdir.obj: missing/mkdir.c
+ $(CC) $(CFLAGS) $(CPPFLAGS) -c missing/mkdir.c
+
+setenv.obj: missing/setenv.c
+ $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c missing/setenv.c
+
+strerror.obj: missing/strerror.c
+ $(CC) $(CFLAGS) $(CPPFLAGS) -c missing/strerror.c
+
+strdup.obj: missing/strdup.c
+ $(CC) $(CFLAGS) $(CPPFLAGS) -c missing/strdup.c
+
+strftime.obj: missing/strftime.c
+ $(CC) -I. $(CFLAGS) $(CPPFLAGS) -c missing/strftime.c
+
+strstr.obj: missing/strstr.c
+ $(CC) $(CFLAGS) $(CPPFLAGS) -c missing/strstr.c
+
+strtol.obj: missing/strtol.c
+ $(CC) $(CFLAGS) $(CPPFLAGS) -c missing/strtol.c
+
+strtoul.obj: missing/strtoul.c
+ $(CC) $(CFLAGS) $(CPPFLAGS) -c missing/strtoul.c
+
+# when I use -I., there is confliction at "OpenFile"
+# so, set . into environment varible "include"
+nt.obj: missing/nt.c
+ @set include=$(INCLUDE);.
+ $(CC) $(CFLAGS) $(CPPFLAGS) -c missing/nt.c
+
+parse.c: parse.y
+ $(YACC) $(YFLAGS) parse.y
+ sed -e "s!^extern char \*getenv();!/* & */!" y.tab.c > parse.c
+ @rm y.tab.c
+
+# Prevent GNU make v3 from overflowing arg limit on SysV.
+.NOEXPORT:
+###
+parse.obj : parse.y ruby.h defines.h config.h env.h node.h st.h regex.h
+###
+array.obj: array.c ruby.h config.h defines.h
+bignum.obj: bignum.c ruby.h config.h defines.h
+class.obj: class.c ruby.h config.h defines.h node.h st.h
+compar.obj: compar.c ruby.h config.h defines.h
+dir.obj: dir.c ruby.h config.h defines.h
+dln.obj: dln.c config.h defines.h dln.h st.h
+dmyext.obj: dmyext.c
+enum.obj: enum.c ruby.h config.h defines.h
+error.obj: error.c ruby.h config.h defines.h env.h
+eval.obj: eval.c ruby.h config.h defines.h env.h node.h sig.h st.h dln.h
+file.obj: file.c ruby.h config.h defines.h io.h sig.h
+fnmatch.obj: fnmatch.c config.h fnmatch.h
+gc.obj: gc.c ruby.h config.h defines.h env.h sig.h st.h node.h re.h regex.h
+glob.obj: glob.c config.h fnmatch.h
+hash.obj: hash.c ruby.h config.h defines.h st.h
+inits.obj: inits.c ruby.h config.h defines.h
+io.obj: io.c ruby.h config.h defines.h io.h sig.h
+main.obj: main.c
+math.obj: math.c ruby.h config.h defines.h
+numeric.obj: numeric.c ruby.h config.h defines.h
+object.obj: object.c ruby.h config.h defines.h st.h
+pack.obj: pack.c ruby.h config.h defines.h
+process.obj: process.c ruby.h config.h defines.h sig.h st.h
+random.obj: random.c ruby.h config.h defines.h
+range.obj: range.c ruby.h config.h defines.h
+re.obj: re.c ruby.h config.h defines.h re.h regex.h
+regex.obj: regex.c config.h defines.h regex.h util.h
+ruby.obj: ruby.c ruby.h config.h defines.h re.h regex.h dln.h
+signal.obj: signal.c ruby.h config.h defines.h sig.h
+sprintf.obj: sprintf.c ruby.h config.h defines.h
+st.obj: st.c config.h st.h
+string.obj: string.c ruby.h config.h defines.h re.h regex.h
+struct.obj: struct.c ruby.h config.h defines.h
+time.obj: time.c ruby.h config.h defines.h
+util.obj: util.c defines.h config.h util.h
+variable.obj: variable.c ruby.h config.h defines.h env.h st.h
+version.obj: version.c ruby.h config.h defines.h version.h
+director.obj : director.c dir.h