06mkfile-03tree

来源:互联网 发布:去除ghost预装软件 编辑:程序博客网 时间:2024/06/07 18:34

include/func_a.h

void func_a();

 

include/func_b.h

void func_b);

 

lib/func_a.c

#include <stdio.h>#include "func_a.h"void func_a(){    printf("%s\n", __FUNCTION__);}


lib/func_b.c

#include <stdio.h>#include "func_b.h"void func_b(){    printf("%s\n", __FUNCTION__);}~                                     


lib/Makefile

SRCS := func_a.c func_b.c$(BUILT_IN): $(SRCS:.c=.o)    $(LD) $(LDFLAGS) -r -o $@ $^$(SRCS:.c=.o):    $(CC) $(CFLAGS) -c $<$(DEP): $(SRCS)    $(CC) $(CFLAGS) -MM $(SRCS) >$@    sed -i "s/: / $@: /g" $@sinclude $(DEP).PHONY: cleanclean:    $(RM) $(SRCS:.c=.o) $(BUILT_IN) $(DEP)~                                            


main/main.c

#include <stdio.h>#include "func_a.h"#include "func_b.h"int main(){    func_a();    func_b();    return 0;}


main/Makefile

SRCS := main.c$(BUILT_IN): $(SRCS:.c=.o)    $(LD) $(LDFLAGS) -r -o $@ $^$(SRCS:.c=.o):    $(CC) $(CFLAGS) -c $<$(DEP): $(SRCS)    $(CC) $(CFLAGS) -MM $(SRCS) >$@    sed -i "s/: / $@: /g" $@sinclude $(DEP).PHONY: cleanclean:    $(RM) $(SRCS:.c=.o) $(BUILT_IN) $(DEP)


 

 

Makefile

TGT := helloSUBDIR := \      lib \      mainexport TOPDIR := $(shell pwd)export CFLAGS := -O2 -I$(TOPDIR)/includeexport LDFLAGS :=  export CROSS_COMPILER_PREFIX :=  export CC := $(CROSS_COMPILER_PREFIX)gccexport LD := $(CROSS_COMPILER_PREFIX)ldexport BUILT_IN := built_in.oexport DEP = dep export MAKE := makeall: $(TGT)$(TGT): $(SUBDIR)    $(CC) $(LDFLAGS) -o $@ $(^:=/$(BUILT_IN))$(SUBDIR):    $(MAKE) -C $@.PHONY: $(SUBDIR) clean all clean:    for dir in $(SUBDIR); do \        $(MAKE) -C $$dir clean; \    done    $(RM) $(TGT)~                                   


 

原创粉丝点击