[exerb-dev] CygwinでのMingwコアの作成

Back to archive index

Shiro Soga shiro****@sogas*****
2002年 9月 25日 (水) 00:15:19 JST


曽我と言います。

exerb 2.0.0 にて Cygwin 環境の gcc(とmake)を使って Mingw なコアなコ
ンパイルをする(要するに gcc -mno-cygwinです) Makefile のサンプルです。
(一気に Mingw と Cygwin 用とそれぞれの GUI向け CUI向け を作ります)

# かなり安直です。参考程度にお考えてください。。。

実際にお使いになる場合は、Makefileの先頭の librubys へのライブラリパス
のところと、-lxxx-rubysのところに修正の必要があります。

ちなみにこれで1.7のコアを作ると.soなライブラリのrequireでこけてしまい
ます。。。1.7のコアのVC版はどこかで提供されてませんか?

------------------------------ ここから ------------------------------
PROJDIR1	= /usr/src/ruby-1.6-mingw
PROJDIR2	= /usr/src/ruby-1.6-cygwin
PROJDIR3	= /usr/src/ruby-mingw
PROJDIR4	= /usr/src/ruby-cygwin
INCLUDES1	= -I$(PROJDIR1) -I../../res
INCLUDES2	= -I$(PROJDIR2) -I../../res
INCLUDES3	= -I$(PROJDIR3) -I../../res
INCLUDES4	= -I$(PROJDIR4) -I../../res
LIBS1		= -L$(PROJDIR1) -li386-mingw32-rubys -lgdi32 -lwsock32 -lmingwex -lcrypt
LIBS2		= -L$(PROJDIR2) -lrubys -lgdi32 -lcrypt
LIBS3		= -L$(PROJDIR3) -li386-mingw32-rubys -lgdi32 -lwsock32 -lmingwex -lcrypt
LIBS4		= -L$(PROJDIR4) -li386-cygwin-rubys -lgdi32 -lcrypt

VPATH		= ../../res
.SUFFIXES:	.rbx .o .cpp .c .h

all:	\
	ruby167c-mingw32.rbx \
	ruby167g-mingw32.rbx \
	ruby167c-cygwin.rbx \
	ruby167g-cygwin.rbx \
	ruby17c-mingw32.rbx \
	ruby17g-mingw32.rbx \
	ruby17c-cygwin.rbx \
	ruby17g-cygwin.rbx

clean:
	rm *.rbx *.exe *.o *.res *~

resource.res:	resource.rc resource.h
	windres $< -O coff -o $@ --include-dir=../../res

ruby167c-mingw32.rbx: Makefile resource.res exerb-167.cpp
	dllwrap --target=i386-mingw32 -mno-cygwin --output-exp=ruby.exp \
	--def=exerb-mingw.def $(LIBS1) -o $@
	gcc -mno-cygwin -D_CONSOLE -DNT -D__NO_ISOCEXT $(INCLUDES1) -c exerb-167.cpp
	gcc -s -mno-cygwin ruby.exp exerb-167.o resource.res -o $@ $(LIBS1)

ruby167g-mingw32.rbx: Makefile resource.res exerb-167.cpp
	dllwrap --target=i386-mingw32 -mno-cygwin --output-exp=ruby.exp \
	--def=exerb-mingw.def $(LIBS1) -o $@
	gcc -mno-cygwin -D_WINDOWS -DNT -D__NO_ISOCEXT $(INCLUDES1) -c exerb-167.cpp
	gcc -s -mwindows -mno-cygwin ruby.exp exerb-167.o resource.res -o $@ $(LIBS1)

ruby167c-cygwin.rbx: Makefile resource.res exerb-167.cpp
	dllwrap --target=i386-cygwin --output-exp=ruby.exp \
	--def=exerb-cygwin.def $(LIBS2) -o $@
	gcc -D_CONSOLE $(INCLUDES2) -c exerb-167.cpp
	gcc -s ruby.exp exerb-167.o resource.res -o $@ $(LIBS2)

ruby167g-cygwin.rbx: Makefile resource.res exerb-167.cpp
	dllwrap --target=i386-cygwin --output-exp=ruby.exp \
	--def=exerb-cygwin.def $(LIBS2) -o $@
	gcc -D_WINDOWS $(INCLUDES2) -c exerb-167.cpp
	gcc -s -mwindows ruby.exp exerb-167.o resource.res -o $@ $(LIBS2)

ruby17c-mingw32.rbx: Makefile resource.res exerb.cpp
	dllwrap --target=i386-mingw32 -mno-cygwin --output-exp=ruby.exp \
	--def=exerb-mingw17.def $(LIBS3) -o $@
	gcc -mno-cygwin -D_CONSOLE -DNT -D__NO_ISOCEXT $(INCLUDES3) -c exerb.cpp
	gcc -s -mno-cygwin ruby.exp exerb.o resource.res -o $@ $(LIBS3)

ruby17g-mingw32.rbx: Makefile resource.res exerb.cpp
	dllwrap --target=i386-mingw32 -mno-cygwin --output-exp=ruby.exp \
	--def=exerb-mingw17.def $(LIBS3) -o $@
	gcc -mno-cygwin -D_WINDOWS -DNT -D__NO_ISOCEXT $(INCLUDES3) -c exerb.cpp
	gcc -s -mwindows -mno-cygwin ruby.exp exerb.o resource.res -o $@ $(LIBS3)

ruby17c-cygwin.rbx: Makefile resource.res exerb.cpp
	dllwrap --target=i386-cygwin --output-exp=ruby.exp \
	--def=exerb-cygwin17.def $(LIBS4) -o $@
	gcc -D_CONSOLE $(INCLUDES4) -c exerb.cpp
	gcc -s ruby.exp exerb.o resource.res -o $@ $(LIBS4)

ruby17g-cygwin.rbx: Makefile resource.res exerb.cpp
	dllwrap --target=i386-cygwin --output-exp=ruby.exp \
	--def=exerb-cygwin17.def $(LIBS4) -o $@
	gcc -D_WINDOWS $(INCLUDES4) -c exerb.cpp
	gcc -s -mwindows ruby.exp exerb.o resource.res -o $@ $(LIBS4)

.cpp.o:
	$(CC) $(CFLAGS) -c $<

.c.o:
	$(CC) $(CFLAGS) -c $<
------------------------------ ここまで ------------------------------

----------------------------------------------------------------------
そがし(曽我 四郎)       E-Mail: shiro****@sogas*****



exerb-developer メーリングリストの案内
Back to archive index