読者です 読者をやめる 読者になる 読者になる

なんとな~くしあわせ?の日記

ClojureとかAWSの設定とかをメモする技術ブログ

Makefileのルールを勉強

Makefile


会社で触ってる奴とは別の言語をやりたくなる病

参考サイト:
Sorry, page not found, please visit other links
トリビアなmakefile入門

Automatic Variables(自動変数)を使ってみる。これを使えばいちいち同じ記述を繰り返さなくて良いみたい。

#今までのMakefile
#
#依存関係 Main (依存)→ Subchan2 (依存)→ Subchan1
#

TARGET 	= Nantoka
OBJECTS = Main.o SubChan1.o SubChan2.o

# Option
CPPFLAGS = -O2 -s -Wall -I/c/MinGW/include `wx-config --cxxflags`
LDFLAGS  = -L/c/MinGW/lib `wx-config --libs`

all : $(TARGET)
$(TARGET) : $(OBJECTS)
		$(CXX) $(OBJECTS) $(LDFLAGS) -o $(TARGET)
SubChan1.o : SubChan1.h
		$(CXX) -c SubChan1.cpp $(CPPFLAGS)
SubChan2.o : SubChan2.h SubChan1.h
		$(CXX) -c SubChan2.cpp $(CPPFLAGS)
Main.o : Main.h SubChan2.h
		$(CXX) -c Main.cpp $(CPPFLAGS)
.PHONY: clean
clean:
	$(RM) -f *.o *.exe


#これからのMakefile
#
#依存関係 Main (依存)→ Subchan2 (依存)→ Subchan1
#

TARGET 	= Nantoka
OBJECTS = Main.o SubChan1.o SubChan2.o

# Option
CPPFLAGS = -O2 -s -Wall -I/c/MinGW/include `wx-config --cxxflags`
LDFLAGS  = -L/c/MinGW/lib `wx-config --libs`

all : $(TARGET)
$(TARGET) : $(OBJECTS)
		$(CXX) $^ -o $@ $(LDFLAGS)
SubChan1.o : SubChan1.cpp SubChan1.h
		$(CXX) -c $< $(CPPFLAGS)
SubChan2.o : SubChan2.cpp SubChan2.h SubChan1.h
		$(CXX) -c $< $(CPPFLAGS)
Main.o : Main.cpp Main.h SubChan2.h
		$(CXX) -c $< $(CPPFLAGS)
.PHONY: clean
clean:
	$(RM) -f *.o *.exe

記述量はあんまり変わらないんですかね(ゲス声)