2009年8月24日 星期一

建置工具阿...

最早是寫 Quick Basic 跟 Turbo C++,之後用 Visual Studio/Dev-C++/Code::Blocks,其實一直以來都不需要自己撰寫 makefile,雖然要寫也是會寫,但是可以的話還是交給工具直接作。隨著時間過去會想要控制一些建置的細節,所以想找一套好的建置工具,功能不用超強大,但是希望簡單好用。進行了一些調查...

Make,有時候實在覺得不好用,所以才會想去找別的工具。

bjam,講實話真是難學難用,除了「可以一次編出多個binary」也沒真的感覺到他有什麼特點與眾不同。重點是文件一是不足,二是不好,這真是致命傷。

SCons,有趣,跟我心裡想的方向一致。如果建置想要良好的彈性,那 script 本身的描述力最好要足夠強大方便,Make script 完全不及格,jam language 算是堪用,但是都不及 SCons 直接使用 Python 當作 script language 來用的好。

CMake,最近真是紅耶。稍微看了一下,好似不錯,但是我的心思已經偏向 SCons 啦~

回頭想了一下,其實仿造 SCons 自己打造一個建構工具也沒很難,我不需要寫 parser 什麼鬼的東西,單純寫成一個 Pyhton package 就可以簡單使用了,老實說不只是不難,而是非常簡單。

bjam 難學到爆,但是自動徵測 header file 的能力 SCons 沒有,bjam 的文件有講實作原理,其實超簡單就是用 grep 直接抓,這樣我可以輕鬆實作出這點,可以補足 SCons 不足的地方。對於現代的 C++ 來說,generic programming 很常見,寫程式的過程很多時候都是要改動 header 而不改動 source。很明顯 bjam 這個專為 boost 設計的建置工具是考慮到這點了。

以後就用自己的建置工具好了。最簡單的開頭就是...

## yocomake.py
import os
def exe ( target, source ) :
cmd = 'g++ -o a.out ' + ' '.join(source)
print cmd
os.system(cmd)

## ymake
from yocomake import exe
exe ( 'a.out', ['test.cc'] )

耶,馬上就可以用了~事情總是簡單~以後要什麼功能再慢慢加上就好!這樣好像要打比 make 跟 bjam 還有更多字喔?管他的!爽就好!

想了一下以後可能需要做的東西,再多看了 SCons 兩眼,發現 SCons 的設計還真是符合我要的 XD 那我還是直接拿來改就好了 XD

2009年8月20日 星期四

路面電車

因為一段時間沒回家了,所以想說找個週末回家,於是這個週末就去火車站搭上火車前往中壢,本來還差一點趕不上這般電車的,死命的跑後來追上了。

電車開著開著,不知道為什麼覺得鐵軌兩邊的周圍的護欄都不見了,而且周圍的人也越來越多,電車的速度也變慢了,軌道也變了,變成路面電車的那種輕軌。我發現自己其實搭的是雙層的電車,雙層的路面電車,於是我走下去,想去一樓看看,結果一下去就看到司機,是俁之,然後一樓的乘客都是俁之的親戚啦,原來這是他們出遊的專車,我是不小心搭錯車搭到的。

然後就跟俁之開始聊天,俁之就一邊跟我聊天一邊開路面電車(好孩子不要學,請勿在電車行使中跟駕駛談話,當然,駕駛也請不要一邊駛車一邊跟大學同學聊天)。路面電車發展的非常完整,幾乎所有的大街小巷都有軌道,還好幾軌,真正實現 Door to Door 的軌道運輸,開電車就像是開汽車一樣方便。

後來開著開著就開到俁之台南家了,電車停在他家門口,說會在這邊吃完晚餐以後就要繼續出發。俁之說等等會駛往澎湖,問我要不要去,我說沒辦法,因為我本來是要回中壢的,來到台南已經是反方向了。

醒了,因為我並不想搭乘路面電車去澎湖 =,=