decode

技術ブログ 本の紹介

Nacl様インターン3日目

こんにちは、kawasakikouです!
今日は3日目、段々慣れて来て楽しくなってきました!!

今日したこと

今日は...

batから実行したコマンドのウィンドウが高速終了するのを開きっぱなしにするようにした

はじめまして。 Windowsのバッチファイルについて教えて下さい。… - 人力検索はてな

ここが参考になりました。
http://q.hatena.ne.jp/1085322553

cmd.exe /K

ってbatfileに書いてあげると、そのウィンドウは閉じないので、コマンドを分割してbatを呼び出す様にして、一つ一つを止まる様にした。

-- round_1.bat
    bat  
     |-- game_ai.bat
     |-- ~~.bat
     |-- ~~.bat

みたいな...

round_1.batでbatディレクトリ以下のbatfileを呼び出して、その一つ一つのbatfileにcmd.exe /Kって書くと止まります。


smalruby甲子園をmacで環境構築

結局今までwindowsで動かしていたので、辛かったのですが、やっと自分の環境に...泣泣
やっぱ自分の環境って最高ですね...笑

まず、smalrubyを動かすためにはdxruby_sdlが必要です。

smalruby/dxruby_sdl · GitHub

(1) SDL

(if you use MacPorts.)
$ sudo port install libsdl libsdl_image libsdl_mixer libsdl_sound libsdl_ttf

(if you use Homebrew)
$ brew install sdl sdl_image sdl_mixer sdl_ttf sdl_sound

(2) SGE
ここがちょっとつらくて、curlしてる所がNot foundになっていたり、githubアカウント消していてgistなかったり...
sge030809.tar.gz - Global FTP Search Engine, File Search Engine

sge_030809_cmap.patch

http://bugs.gentoo.org/33296#26

patch by Steve <steviedizzle@gmail.com>

explanation:
It changes the 16bit integers for setting and clearing collision maps to 32bit
because if the surface is too large the program will segfault.

--- sge030809/sge_collision.cpp
+++ sge030809/sge_collision.cpp
@@ -336,7 +336,7 @@
 void sge_unset_cdata(sge_cdata *cd, Sint16 x, Sint16 y, Sint16 w, Sint16 h)
 {
 	Uint8 *map=cd->map;
-	Sint16 offs,len;
+	Sint32 offs,len;
 	int i,n=0;
 	
 	offs=y*cd->w + x;
@@ -365,7 +365,7 @@
 void sge_set_cdata(sge_cdata *cd, Sint16 x, Sint16 y, Sint16 w, Sint16 h)
 {
 	Uint8 *map=cd->map;
-	Sint16 offs,len;
+	Sint32 offs,len;
 	int i,n=0;
 	
 	offs=y*cd->w + x;

sge_030809_freetype.patch

--- sge_tt_text.cpp
+++ sge_tt_text.cpp
@@ -36,10 +36,9 @@
 #include "sge_textpp.h"
 
 #ifndef _SGE_NOTTF
-#include <freetype/freetype.h>
-#include <freetype/ftoutln.h>
-#include <freetype/ttnameid.h>
-#include <freetype/internal/ftobjs.h>
+#include <ft2build.h>
+#include FT_FREETYPE_H
+#include FT_OUTLINE_H
 
 /* The structure used to hold glyph information (cached) */
 struct glyph {
@@ -294,7 +293,7 @@
 	}
 	memset(stream, 0, sizeof(*stream));
 
-	stream->memory = _sge_library->memory;
+	stream->memory = NULL;
 	stream->read = RWread;
 	stream->descriptor.pointer = src;
 	stream->pos = (unsigned long)position;

sge-030809-build.patch

--- Makefile.orig	2006-03-29 00:08:39.000000000 -0500
+++ Makefile	2006-03-29 00:09:36.000000000 -0500
@@ -2,7 +2,7 @@
 
 include Makefile.conf
 
-CFLAGS += $(SGE_CFLAGS) -fPIC $(FT_CFLAGS)
+CXXFLAGS += $(SGE_CFLAGS) -fPIC $(FT_CFLAGS)
 LIBS =$(SGE_LIBS)
 
 SGE_VER = 030809
@@ -10,20 +10,26 @@
 
 OBJECTS=sge_surface.o sge_primitives.o sge_tt_text.o sge_bm_text.o sge_misc.o sge_textpp.o sge_blib.o sge_rotation.o sge_collision.o sge_shape.o
 
-all:	config $(OBJECTS) 
-	@ar rsc libSGE.a $(OBJECTS)
+SHARED_LIB=libSGE.so.$(API_VER)
+STATIC_LIB=libSGE.a
 
-$(OBJECTS):	%.o:%.cpp %.h   #Each object depends on thier .cpp and .h file
-	$(CXX) $(CFLAGS) -c $<
+all:	sge_config.h $(OBJECTS) $(SHARED_LIB) $(STATIC_LIB)
 
-shared: all
-	$(CXX) $(CFLAGS) -Wl,-soname,libSGE.so.$(API_VER) -fpic -fPIC -shared -o libSGE.so $(OBJECTS) $(LIBS)
+$(STATIC_LIB): $(OBJECTS)
+	$(AR) rsc libSGE.a $(OBJECTS)
 
-shared-strip:	shared
+$(OBJECTS): sge_config.h
+$(OBJECTS):	%.o:%.cpp %.h   #Each object depends on their .cpp and .h file
+	$(CXX) $(CXXFLAGS) -c $<
+
+$(SHARED_LIB): $(OBJECTS)
+	$(CXX) $(CXXFLAGS) $(LDFLAGS) -Wl,-soname,libSGE.so.$(API_VER) -fpic -fPIC -shared -o libSGE.so $(OBJECTS) $(LIBS)
+
+shared-strip:	$(SHARED_LIB)
 	@strip libSGE.so
 
 # Building a dll... I have no idea how to do this, but it should be something like below.
-dll:	config $(OBJECTS)
+dll:	sge_config.h $(OBJECTS)
 	dlltool --output-def SGE.def $(OBJECTS)
 	dllwrap --driver-name $(CXX) -o SGE.dll --def SGE.def --output-lib libSGE.a --dllname SGE.dll $(OBJECTS) $(LIBS)
 
@@ -33,21 +39,22 @@
 clean:
 	@rm -f *.o *.so *.a *.dll *.def
 
-config:
-	@echo "/* SGE Config header (generated automatically) */" >sge_config.h
-	@echo "#define SGE_VER $(SGE_VER)" >>sge_config.h	
+sge_config.h:
+	@echo "/* SGE Config header (generated automatically) */" >sge_config.h.tmp
+	@echo "#define SGE_VER $(SGE_VER)" >>sge_config.h.tmp
 ifeq ($(C_COMP),y)
-	@echo "#define _SGE_C_AND_CPP" >>sge_config.h
+	@echo "#define _SGE_C_AND_CPP" >>sge_config.h.tmp
 endif
 ifeq ($(USE_FT),n)
-	@echo "#define _SGE_NOTTF" >>sge_config.h
+	@echo "#define _SGE_NOTTF" >>sge_config.h.tmp
 endif
 ifeq ($(USE_IMG),y)
-	@echo "#define _SGE_HAVE_IMG" >>sge_config.h
+	@echo "#define _SGE_HAVE_IMG" >>sge_config.h.tmp
 endif
 ifeq ($(NO_CLASSES),y)
-	@echo "#define _SGE_NO_CLASSES" >>sge_config.h
+	@echo "#define _SGE_NO_CLASSES" >>sge_config.h.tmp
 endif
+	mv sge_config.h.tmp sge_config.h
 
 ifneq ($(QUIET),y)
 	@echo "== SGE r$(SGE_VER)"
@@ -70,13 +77,13 @@
 	@echo ""	
 endif
 
-install:	shared
-	@mkdir -p $(PREFIX_H)
-	install -c -m 644 sge*.h $(PREFIX_H)
-	@mkdir -p $(PREFIX)/lib
-	install -c -m 644 libSGE.a $(PREFIX)/lib
-	install -c libSGE.so $(PREFIX)/lib/libSGE.so.$(API_VER).$(SGE_VER)
-	@cd $(PREFIX)/lib;\
+install:	$(SHARED_LIB) $(STATIC_LIB)
+	@mkdir -p $(DESTDIR)$(PREFIX_H)
+	install -c -m 644 sge*.h $(DESTDIR)$(PREFIX_H)
+	@mkdir -p $(DESTDIR)$(PREFIX)/lib
+	install -c -m 644 $(STATIC_LIB) $(DESTDIR)$(PREFIX)/lib
+	install -c libSGE.so $(DESTDIR)$(PREFIX)/lib/libSGE.so.$(API_VER).$(SGE_VER)
+	@cd $(DESTDIR)$(PREFIX)/lib;\
 	ln -sf libSGE.so.$(API_VER).$(SGE_VER) libSGE.so.$(API_VER);\
 	ln -sf libSGE.so.$(API_VER) libSGE.so
 	@echo "** Headerfiles installed in $(PREFIX_H)"
--- Makefile.conf.orig	2006-03-29 00:08:39.000000000 -0500
+++ Makefile.conf	2006-03-29 00:08:39.000000000 -0500
@@ -11,6 +11,7 @@
 # Compilers (C and C++)
 CC=gcc
 CXX=g++
+AR=ar
 
 # Make sure sdl-config is available
 HAVE_SDL =$(shell if (sdl-config --version) < /dev/null > /dev/null 2>&1; then echo "y"; else echo "n"; fi;)
@@ -25,11 +26,13 @@
 PREFIX_H =$(shell sdl-config --prefix)/include/SDL
 
 # Flags passed to the compiler
-CFLAGS =-Wall -O3 -ffast-math
+CXXFLAGS ?=-O3 -ffast-math
 SGE_CFLAGS =$(shell sdl-config --cflags)
 # Uncomment to make some more optimizations
-#CFLAGS =-Wall -O9 -ffast-math -march=i686
+#CXXFLAGS =-O9 -ffast-math -march=i686
 
+# Spit out warnings
+CXXFLAGS += -Wall
 
 # Libs config
 SGE_LIBS =$(shell sdl-config --libs) -lstdc++

詰まったのはこの辺だけですかね...

(3) MS PGohic (DXRuby's default font)

Install Microsoft Office:mac from http://www.microsoft.com/japan/mac.

って書いてますが、無料体験版ですらクレジットカードがいるので辛い。

WinXPの標準フォントをMac OS Xに入れてみた - GNC日記
手元に運良くwindows機があったので、こんな感じで引っこ抜いて、
Mac OS X のフォントの選択方法と Mavericks 以降からされている搭載のフォントについて
こんな感じで追加しました。
まぁよしなに。

んで後は、

# A sample Gemfile
source "https://rubygems.org"

gem 'dxruby_sdl'
gem 'smalruby-editor'

みたいな感じで。

smalruby-editorにはsmalrubyが含まれてるらしいので、smalrubyは記述しない。

こんな感じで環境構築はできました!


後は、
昨日帰り送って頂いたので自転車が無く、朝も送って頂いたり、
お昼にrubyチーム5人でランチパスポート持ってパスタおごって貰ったり、
帰宅が6時で幸せだったり。

あと大学はどんな教授がいるかで選ぼうと思いました。

本当にありがとうございます、もっと勉強しないとなぁ

明日はgame_server(webrick)がCtrl-Cで終了してくれない所からです。


広告を非表示にする