1. 程式人生 > >寫了個巢狀執行make

寫了個巢狀執行make

跟我一起寫 Makefile ------------------------------陳皓

#VPATH = BaseRender:shaderUtil:testApp:glad:.

PROJECT_PATH = $(shell pwd)

OBJSDIR = $(PROJECT_PATH)/objs

CFLAGS = -O2 -lstdc++

DIRS = BaseRender shaderUtil testApp glad.

FILES = $(foreach dir, $(DIRS), $(wildcard $(dir)/*.cpp))

OBJS = $(patsubst %.cpp, %.o, $(FILES))

LIBS += -lGLEW -lglfw -framework Cocoa -framework OpenGL -framework IOKit -framework CoreVideo

TARGET = tutorialEdit

all:$(TARGET)

$(TARGET):$(OBJSDIR) winMain.o

    $(MAKE) -C BaseRender

    $(MAKE) -C shaderUtil

    $(MAKE) -C utils

    $(MAKE) -C glad

    $(MAKE) -C testApp

    $(CC) $(CFLAGS) $(LIBS) $(OBJSDIR)/*.o -o

[email protected]

$(OBJSDIR):

    mkdir -p [email protected]

winMain.o:%.o:%.cpp

    $(CC) -c $< -o $(OBJSDIR)/[email protected] $(CFLAGS) -IBaseRender -IshaderUtil -Iutils -ItestApp -Iglad

.PHONY:clean

clean :

    -$(RM) $(TARGET) $(OBJSDIR)/*.o

這個makefile仍然有問題,巢狀執行的makefile裡面出現警告

'linker' input unused,我就在生成TARGET需要最終連結.o檔案時加上LIBS,但是我寫巢狀makefile一開始的目的是想把各種不同的依賴在各個子資料夾裡面處理,現在暫時先這樣寫,再研究下怎麼處理這個問題。