Re: [問題] Make抓頭檔案裡的變量
※ 引述《Damaged (被害者)》之銘言:
: 是這樣的 有個頭檔案叫 version.h
: #ifndef _VERSION_H_
: #define _VERSION_H_
: #define VERSION 0.1.16
應該是
#define VERSION "0.1.16"
: #endif
: 在makefile 裡想去抓取VERSION的數值( 0.1.16),然後存在一個變量裡
: (好比叫VERSION好了)
: 那請問要怎做呢?
: 試了很久還是不太行啊,對shell很不熟
: 有沒大大能幫一下的呢 謝謝
如果是我可能會先寫一個ver.mk:
.PHONY: all clean
all: ver
clean:
@rm ver ver.c
ver: version.h
@echo "#include <stdio.h>" > ver.c
@echo "#include \"version.h\"" >> ver.c
@echo "int main() {" >> ver.c
@echo "printf(\"%s\", VERSION);" >> ver.c
@echo "return 0;" >> ver.c
@echo "}" >> ver.c
@gcc -o $@ ver.c
Makefile內容則大概是:
tmp := $(shell make -f ver.mk)
VERSION := $(shell ./ver)
$(info the version is $(VERSION))
.PHONY: all clean
all:
@echo done
clean:
@make -f ver.mk clean
好處是每次version.h有更新就會自動重新編譯ver
而且可以支援像
#if 0
#define VERSION "0.1.16"
#else
#define VERSION "0.1.17"
#endif
這樣的寫法
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.240.230.241
→
02/10 11:13, , 1F
02/10 11:13, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):