http://lists.modruby.net/ml/archive/modruby-ja/200501.month/429.html http://mattn.kaoriya.net/software/lang/ruby/20081010193230.htm
APACHE_ROOT=C:\Apache2.2 RUBY_ROOT=C:\Ruby SRCS = \ apache_cookie.c \ apache_multipart_buffer.c \ apache_request.c \ apachelib.c \ array_header.c \ bucket.c \ connection.c \ cookie.c \ error.c \ mod_ruby.c \ multival.c \ paramtable.c \ request.c \ ruby_config.c \ ruby_shared_stub.c \ server.c \ table.c \ upload.c \ uri.c OBJS = $(SRCS:.c=.obj) CFLAGS=/I"$(APACHE_ROOT)\include" /I"$(RUBY_ROOT)\lib\ruby\1.8\i386-mswin32_100" /DWIN32 /nologo LDFLAGS=/LIBPATH:"$(APACHE_ROOT)\lib" /LIBPATH:"$(RUBY_ROOT)\lib" LIBS= libapr-1.lib libaprutil-1.lib libhttpd.lib msvcr-ruby18.lib .SUFFIXES: .c .obj all : mod_ruby.so .c.obj: cl /c $(CFLAGS) /Fo$@ $< mod_ruby.so : $(OBJS) link /nologo /DLL /OUT:$@ /EXPORT:ruby_module $(OBJS) $(LDFLAGS) $(LIBS) clean : -@del /Q *.obj *.so
The Makefile for MinGW is
APACHE_ROOT=C:\Program Files\Apache Software Foundation\Apache2.2 RUBY_ROOT=C:\Ruby SRCS = \ apache_cookie.c \ apache_multipart_buffer.c \ apache_request.c \ apachelib.c \ array_header.c \ bucket.c \ connection.c \ cookie.c \ error.c \ mod_ruby.c \ multival.c \ paramtable.c \ request.c \ ruby_config.c \ ruby_shared_stub.c \ server.c \ table.c \ upload.c \ uri.c OBJS = $(SRCS:.c=.o) CFLAGS=-I"$(APACHE_ROOT)\include" -I"$(RUBY_ROOT)\lib\ruby\1.8\i386-mswin32" -DWIN32 LDFLAGS=-L"$(APACHE_ROOT)\lib" -L"$(RUBY_ROOT)\lib" LIBS= -llibapr-1 -llibaprutil-1 -llibhttpd -lmsvcrt-ruby18 .SUFFIXES: .c .o all : mod_ruby.so .c.o: gcc -c $(CFLAGS) -o $@ $< mod_ruby.so : $(OBJS) gcc -shared -o $@ $(OBJS) $(LDFLAGS) $(LIBS) clean : -@rm -f *.o *.so
the MinGW version almost works. Still the mode_t error.
https://gist.github.com/804475
Some Info on DLL linking
http://sig9.com/node/35
this may help for understanding the _imp__ errors you get from make with mingw
http://sourceware.org/binutils/docs/ld/WIN32.html
figuring out the links
http://www.stats.uwo.ca/faculty/murdoch/software/compilingDLLs/existingDLL.html
edll has some nice diagrams
http://edll.sourceforge.net/#latest_news