
Ubuntu日本語フォーラム

ログインしていません。
たびたび、お世話になります。
以下のようなMakefileで、OBJSが順次
cc -DL_openraw -o openraw.o -c net.c
ar rv libnet.a openraw.o
と実行されると思いますが、
-DL_openrawの部分は何をしているんでしょうか?
ライブラリについてほとんど知識がなく、いろいろ探してみたんですが、
オプションなのかどうかも良く分かりません。
# CFLAGS += -I../libc/include
SRC = net.c
OBJS = openraw.o closeraw.o setifflags.o resetifflags.o setifaddr.o \
setifdstaddr.o setifbrdaddr.o setifnetmask.o setifmtu.o \
addroute.o maskaddress.o setifhwaddr.o
LIBNET = libnet.a
all: $(LIBNET)
$(LIBNET): $(LIBNET)($(OBJS))
$(RANLIB) $(LIBNET)
$(LIBNET)($(OBJS)): $(SRC)
$(CC) $(CFLAGS) -DL_$(basename $*) -o $(basename $*).o -c $^
$(AR) rv $(LIBNET) $(basename $*).o
romfs:
clean:
-rm -f $(LIBNET) *.o
オフライン
taku_s による投稿:
cc -DL_openraw -o openraw.o -c net.c
-D<マクロ名>
マクロ文字列を定義する
マクロ名の有無で、ソースをスイッチしたりするのに使う
-o <出力ファイル名>
-c <コンパイルのみを行う>
オフライン
これはライブラリとは関係なく、マクロに関係するオプションです。
ソースコード中に「L_openraw」という変数らしいものがあると思うのですが、-DL_openrawオプションをつけることによって、ソースコードをコンパイルするときにL_openrawが1に置き換えられます。
このあたりが参考になるでしょうか。
http://www.cqpub.co.jp/interface/column/freesoft/2003/200311/1.htm
オフライン
おっとスミマセン。投稿が重なってしまいました。
オフライン