多平台公升級版 2 Makefile

2021-06-13 06:39:11 字數 2523 閱讀 6544

多平台公升級版[2]makefile

一.目錄一覽:

6 directories, 19 files

二.makefile檔案詳情:

1.頂層makefile:

[user:多平台公升級版[2]makefile] cat makefile

ifeq ($(arch),)

arch := i386

endif

topdir=$(shell realpath .)

export arch topdir

.phony: all clean help

help:

@echo "make help                              幫助文件"

@echo "make           選擇平台編譯"

@echo "make clean     選擇平台清除"

[user:多平台公升級版[2]makefile]

.phony: all clean help

all : $(target)

$(build)/$(arch)/%.d : %.cpp

mkdir -p $(build)/$(arch); \

rm -rf $@; \

g++ -mm $< > $@.$$$$; \

sed 's,\($*\)\.o[ :]*,$(build)\/$(arch)\/\1.o $@ : ,g' < $@.$$$$ > $@; \

rm -rf $@.$$$$

auto_deps = 0

ifeq (,$(makecmdgoals))

auto_deps = 1

else ifeq (all, $(findstring all, $(makecmdgoals)))

auto_deps = 1

endif

ifeq (1, $(auto_deps))

-include $(addprefix $(build)/$(arch)/,$(deps))

endif

$(build)/$(arch)/%.o : %.cpp

g++ -c $< -o $@

clean:

rm *.o *.d *.elf build -rf

help:

@echo "make help                              幫助文件"

@echo "make           選擇平台編譯"

@echo "make clean     選擇平台清除"

[user:多平台公升級版[2]makefile]

3.lib_pub目錄的makefile:

[user:多平台公升級版[2]makefile] cat lib_pub/makefile

srcs=$(wildcard *.cpp)

objs=$(srcs:.cpp=.o)

deps=$(srcs:.cpp=.d)

build=build

libname=pub

target=$(libname).$(arch).elf

.phony: all clean help

all : $(target)

$(build)/$(arch)/%.d : %.cpp

mkdir -p $(build)/$(arch); \

rm -rf $@; \

g++ -mm $< > $@.$$$$; \

sed 's,\($*\)\.o[ :]*,$(build)\/$(arch)\/\1.o $@ : ,g' < $@.$$$$ > $@; \

rm -rf $@.$$$$

auto_deps = 0

ifeq (,$(makecmdgoals))

auto_deps = 1

else ifeq (all, $(findstring all, $(makecmdgoals)))

auto_deps = 1

endif

ifeq (1, $(auto_deps))

-include $(addprefix $(build)/$(arch)/,$(deps))

endif

$(target) : $(addprefix $(build)/$(arch)/,$(objs))

ar rcs $(build)/$(arch)/lib$(libname).$(arch).a $^

$(build)/$(arch)/%.o : %.cpp

g++ -c $< -o $@

clean:

rm *.o *.d *.elf build -rf

help:

@echo "make help                              幫助文件"

@echo "make           選擇平台編譯"

@echo "make clean     選擇平台清除"

其它內容略過,有疑問請看回第一步:簡單makefile

flask 的簡單拆分公升級版2

建立manage.py from flask script import manager if name main manage.run 建立 init py檔案 from flask import flask settings init info blue 載入藍圖 flask擴充套件包的配置資訊...

Linux常用命令2 公升級版

使用者管理終端命令 5.修改使用者的許可權 6.chown 2.磁碟資訊 3.程序資訊 在linux系統中,不論是由本級或是遠端登入系統,每個系統都必須擁有乙個賬號,並且對於不同的系統資源擁有不同的使用許可權。對檔案 目錄的許可權包括 序號許可權 英文縮寫 數字序號01讀 readr4 02寫wri...

第18周報告2 二維陣列 公升級版)

作 者 雷恆鑫 完成日期 2011 年 12 月23 日 版本號 對任務及求解方法的描述部分 輸入描述 由程式產生隨機數作為初始值 問題描述 程式輸出 程式頭部的注釋結束 include include using namespace std void setdata int a 8 8 設定隨機數...