CプリプロセッサでHTMLを作る(1)

ちょっと作業半ばで出かけないといけないのでメモ

#define __TITLE__ ウェブサイトほげほげ
#include "begin.h"
<h1>ほげほげ</h1>
<p>本文以下省略〜〜〜〜
#include "end.h"

みたいなやつ。
拾ってきた記述によると、gccプリプロセッサ

#プリプロセッサのみ動作
gcc -E hoge.c > hoge.i
#コメント削除を行わない
gcc -E -C hoge.c > hoge.i
#"#line"コマンドを生成しない
gcc -E -P hoge.c > hoge.i
#使用ヘッダファイルも表示
gcc -E -H hoge.c > hoge.i

なので、 gcc -E -C -P hoge.c >hoge.html が適当。
hoge.cのところをhoge.htmlsourceとでもしたいところだが、リンクされないとか言って受け付けてもらえない。C言語に使われる拡張子じゃないと駄目らしい。よくわからんが、とりあえずincludeされるファイルを.hで、htmlになるファイルを.cとでもして作業続行。
文字コードSJISで問題ないらしい。


で、makefileを組む。実は自分はmakefileは詳しく知らない


#Makefile for HTMLs

.SUFFIXES: .h .c .html

PREP = gcc -E -C -P #プリプロセッサ

SRC = $(shell ls *.c)
HEADERS = $(shell ls *.h)
HTMLS = $(SRC:.c=.html)

.PHONY: all
all: $(HTMLS)

.PHONY: clean
clean:
-rm -f $(HTMLS)

$(HTMLS): $(HEADERS)

.c.html:
$(PREP) $< >$@

shellからls呼び出すとかできるんだね。更新確認して必要なとこだけ処理してくれる。