amalgamationの様子をみる~その1 [SQLite]
前回の最後に上げた6つのソースの生成ルールは次の様に定義されています。
それぞれのソースの生成スクリプトはawkやtclで書かれている様ですね。スクリプトの中身をちらっと見てみたところ、たんに元ソースを加工するだけでなく、何らかのコードか定義を追加して行っているようです。この辺、なんでソースに含まれていないのかは分かりませんが、結合時に必要になったものを別途付けてる感じなんですかねぇ・・。
tclって、文法とかを知らないんですよねぇ・・。
最後の「keywordhash.h」は完全にプログラムで生成しているようです。なぜ、プログラムで生成する必要があるのかは、実際に出力を見ないと分かりそうにないですね。
これらのファイルについては、この辺にしておきます。
つづく。
opcodes.c: opcodes.h $(TOP)/mkopcodec.awk $(NAWK) -f $(TOP)/mkopcodec.awk opcodes.h >opcodes.c opcodes.h: parse.h $(TOP)/src/vdbe.c $(TOP)/mkopcodeh.awk cat parse.h $(TOP)/src/vdbe.c | \ $(NAWK) -f $(TOP)/mkopcodeh.awk >opcodes.h parse.h: parse.c parse.c: $(TOP)/src/parse.y lemon $(TOP)/addopcodes.awk cp $(TOP)/src/parse.y . rm -f parse.h ./lemon $(OPTS) parse.y mv parse.h parse.h.temp $(NAWK) -f $(TOP)/addopcodes.awk parse.h.temp >parse.h sqlite3.h: $(TOP)/src/sqlite.h.in $(TOP)/manifest.uuid $(TOP)/VERSION tclsh $(TOP)/tool/mksqlite3h.tcl $(TOP) >sqlite3.h keywordhash.h: $(TOP)/tool/mkkeywordhash.c $(BCC) -o mkkeywordhash $(OPTS) $(TOP)/tool/mkkeywordhash.c ./mkkeywordhash >keywordhash.h |
それぞれのソースの生成スクリプトはawkやtclで書かれている様ですね。スクリプトの中身をちらっと見てみたところ、たんに元ソースを加工するだけでなく、何らかのコードか定義を追加して行っているようです。この辺、なんでソースに含まれていないのかは分かりませんが、結合時に必要になったものを別途付けてる感じなんですかねぇ・・。
tclって、文法とかを知らないんですよねぇ・・。
最後の「keywordhash.h」は完全にプログラムで生成しているようです。なぜ、プログラムで生成する必要があるのかは、実際に出力を見ないと分かりそうにないですね。
これらのファイルについては、この辺にしておきます。
つづく。
コメント 0