SSブログ

the amalgamation generator script [SQLite]

Amalgamationってどうやってんの~? と、脱線気味に探していたところ、「the amalgamation generator script」と言うものが存在してそうな記述を見つけました。・・・それはどこにあるんかなぁ?

*

ズバリそのものが見つかりそうにないので、「README」に書かれていた「publish.sh」と言うのを見て行きます。すると「make sqlite3.c」と言う記述が!

ソースツリー内には「sqlite3.c」が無いため、それを作成する(Amalgamationする?)動作だと思われます。と言うことなので、「Makfile」を見て行こうと思いますが、これは、「publish.sh」の頭の方で「Makefile.linux-gcc」をコピーすることで作成している様なので、「Makefile.linux-gcc」を見て行きます。

「Makefile.linux-gcc」の中は定義っぽいのばかりで、最後に「main.mk」と言うのをインクルードしていますので、そっちを見ることに。「sqlite3.c」を作成する箇所は下記の様な記述になっていました。

sqlite3.c:	target_source $(TOP)/tool/mksqlite3c.tcl
	tclsh $(TOP)/tool/mksqlite3c.tcl
	echo '#ifndef USE_SYSTEM_SQLITE' >tclsqlite3.c
	cat sqlite3.c >>tclsqlite3.c
	echo '#endif /* USE_SYSTEM_SQLITE */' >>tclsqlite3.c
	cat $(TOP)/src/tclsqlite.c >>tclsqlite3.c


「target_source」と「mksqlite3c.tcl」を参照してますね・・。

「target_source」の作成はこんな記述になってました。「mksqlite3c.tcl」は「./tool」配下にある様です。

target_source:	$(SRC) $(TOP)/tool/vdbe-compress.tcl
	rm -rf tsrc
	mkdir tsrc
	cp -f $(SRC) tsrc
	rm tsrc/sqlite.h.in tsrc/parse.y
	tclsh $(TOP)/tool/vdbe-compress.tcl vdbe.new
	mv vdbe.new tsrc/vdbe.c
	touch target_source


こちらは「SRC」と「vdbe-compress.tcl」を参照しています。

「SRC」は「./src」「./ext」に含まれている全ソース(たぶん)と自動生成される(と言うかさせる)下記のファイルの全てを含む様です。

  • keywordhash.h
  • opcodes.c
  • opcodes.h
  • parse.c
  • parse.h
  • sqlite3.h


これらのルールもまた、この「main.mk」に書かれているようですね・・・。


長くなったので、つづく。








nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

ブログを作る(無料) powered by SSブログ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。