git下载的makefile。能人工写makefile的人有多牛阿!
EXE = bin/crawler
EXET = bin/test
Lib_util_inc = utils/inc
Lib_util_src = utils/src
Lib_util_obj = utils/obj
TESTCS = http://students.cs.byu.edu/~cs240ta/crawler_tests/crawlindex.html
TESTLight = http://lightplanet.com/mormons/people/joseph_smith/index.html
TESTDOSE = http://adoseoflovely.blogspot.com/
TESTFILE = http://students.cs.byu.edu/~cs240ta/fall2011/projects/crawler/graphs/local.svg
SUPP = string.supp
OUT = out.xml
STOP = stopwords.txt
OBJSMain = obj/Description.o obj/LinkQueue.o obj/LinkHistory.o obj/main.o obj/HTMLParser.o obj/Occurence.o obj/Page.o obj/StopWords.o \
obj/URL_Resolver.o obj/PageDownloader.o obj/PageList.o obj/Word.o obj/WordIndex.o obj/Write.o obj/Webcrawler.o
OBJSTest = obj/Description.o obj/LinkQueue.o obj/LinkHistory.o obj/HTMLParser.o obj/Occurence.o obj/Page.o obj/StopWords.o \
obj/URL_Resolver.o obj/PageDownloader.o obj/PageList.o obj/Word.o obj/WordIndex.o obj/Write.o obj/Webcrawler.o obj/test.o
# ./bin/webc http://students.cs.byu.edu/~cs240ta/crawler_tests/crawlindex.html out.txt stopwords.txt
# ./bin/webc http://adoseoflovely.blogspot.com/ out.txt stopwords.txt
bin : lib webber
test : lib tester
@ ./$(EXET) $(TESTCS) $(OUT) $(STOP)
runcs: $(EXE)
@ ./$(EXE) $(TESTCS) $(OUT) $(STOP)
rundose : $(EXE)
@ ./$(EXE) $(TESTDOSE) $(OUT) $(STOP)
runlight : $(EXE)
@ ./$(EXE) $(TESTLight) $(OUT) $(STOP)
runfile : $(EXE)
@ ./$(EXE) $(TESTFILE) $(OUT) $(STOP)
vallight : $(EXE)
@ valgrind --tool=memcheck --leak-check=yes --max-stackframe=5000000 --show-reachable=yes --suppressions=$(SUPP) \
$(EXE) $(TESTLight) $(OUT) $(STOP)
valcs : $(EXE)
@ valgrind --tool=memcheck --leak-check=yes --max-stackframe=5000000 --show-reachable=yes --suppressions=$(SUPP) \
$(EXE) $(TESTCS) $(OUT) $(STOP)
clean :
@ echo "Removing files"
@- rm $(Lib_util_obj)/*.o
@- rm lib/*.a
@- rm bin/*
@- rm obj/*
webber: $(EXE)
$(EXE): $(OBJSMain) lib/libcs240utils.a
g++ -m32 -o bin/crawler -g -O0 $(OBJSMain) lib/libcs240utils.a
tester : $(EXET)
$(EXET): $(OBJSTest) lib/libcs240utils.a
g++ -m32 -o bin/test -g -O0 $(OBJSTest) lib/libcs240utils.a
lib/web.a: obj/Webcrawler.o obj/LinkQue.o
ar r lib/web.a obj/Webcrawler.o obj/LinkQue.o obj/LinkHistory.o
obj/Description.o: src/Description.cpp inc/Description.h
g++ -m32 -o obj/Description.o -Wall -g -c -I inc -I utils/inc src/Description.cpp
obj/HTMLParser.o: src/HTMLParser.cpp inc/HTMLParser.h
g++ -m32 -o obj/HTMLParser.o -Wall -g -c -I inc -I utils/inc src/HTMLParser.cpp
obj/LinkedList.h: src/LinkedList.o inc/LinkedList.h
g++ -m32 -o obj/LinkedList.h -Wall -g -c -I inc src/LinkedList.h
obj/LinkQueue.o: src/LinkQueue.cpp inc/LinkQueue.h
g++ -m32 -o obj/LinkQueue.o -Wall -g -c -I inc src/LinkQueue.cpp
obj/LinkHistory.o: src/LinkHistory.cpp inc/LinkHistory.h
g++ -m32 -o obj/LinkHistory.o -Wall -g -c -I inc -I utils/inc src/LinkHistory.cpp
obj/main.o: src/main.cpp
g++ -m32 -o obj/main.o -Wall -g -c -I inc -I utils/inc src/main.cpp
obj/Occurence.o: src/Occurence.cpp inc/Occurence.h
g++ -m32 -o obj/Occurence.o -Wall -g -c -I inc -I utils/inc src/Occurence.cpp
obj/OccurenceSet.o: src/OccurenceSet.cpp inc/OccurenceSet.h
g++ -m32 -o obj/OccurenceSet.o -Wall -g -c -I inc -I utils/inc src/OccurenceSet.cpp
obj/Page.o: src/Page.cpp inc/Page.h
g++ -m32 -o obj/Page.o -Wall -g -c -I utils/inc -I inc src/Page.cpp
obj/PageDownloader.o: src/PageDownloader.cpp inc/PageDownloader.h
g++ -m32 -o obj/PageDownloader.o -Wall -g -c -I inc -I utils/inc src/PageDownloader.cpp
obj/PageList.o: src/PageList.cpp inc/PageList.h
g++ -m32 -o obj/PageList.o -Wall -g -c -I inc -I utils/inc src/PageList.cpp
obj/StopWords.o: src/StopWords.cpp inc/StopWords.h
g++ -m32 -o obj/StopWords.o -Wall -g -c -I utils/inc -I inc src/StopWords.cpp
obj/test.o: src/test.cpp
g++ -m32 -o obj/test.o -Wall -g -c -I utils/inc -I inc src/test.cpp
obj/URL.o: src/URL.cpp inc/URL.h
g++ -m32 -o obj/URL.o -Wall -g -c -I inc src/URL.cpp
obj/URL_Resolver.o: src/URL_Resolver.cpp inc/URL_Resolver.h
g++ -m32 -o obj/URL_Resolver.o -Wall -g -c -I utils/inc -I inc src/URL_Resolver.cpp
obj/Webcrawler.o: src/Webcrawler.cpp inc/Webcrawler.h
g++ -m32 -o obj/Webcrawler.o -Wall -g -c -I inc -I utils/inc src/Webcrawler.cpp
obj/Word.o: src/Word.cpp inc/Word.h
g++ -m32 -o obj/Word.o -Wall -g -c -I inc -I utils/inc src/Word.cpp
obj/WordIndex.o: src/WordIndex.cpp inc/WordIndex.h
g++ -m32 -o obj/WordIndex.o -Wall -g -c -I inc -I utils/inc src/WordIndex.cpp
bug : bin
@ ./$(EXE) $(TESTCS) $(OUT) $(STOP)
obj/WordIndexParser.o: src/WordIndexParser.cpp inc/WordIndexParser.h
g++ -m32 -o obj/WordIndexParser.o -Wall -g -c -I inc -I utils/inc src/WordIndexParser.cpp
obj/Write.o: src/Write.cpp inc/Write.h
g++ -m32 -o obj/Write.o -Wall -g -c -I inc -I utils/inc src/Write.cpp
lib : lib/libcs240utils.a
lib/libcs240utils.a : $(Lib_util_obj)/CommandRunner.o $(Lib_util_obj)/FileInputStream.o $(Lib_util_obj)/FileSystem.o $(Lib_util_obj)/HTTPInputStream.o\
$(Lib_util_obj)/HTMLToken.o $(Lib_util_obj)/URLInputStream.o $(Lib_util_obj)/HTMLTokenizer.o $(Lib_util_obj)/StringUtil.o
ar r lib/libcs240utils.a $(Lib_util_obj)/*.o
$(Lib_util_obj)/CommandRunner.o: $(Lib_util_src)/CommandRunner.cpp $(Lib_util_inc)/CommandRunner.h $(Lib_util_inc)/CS240Exception.h $(Lib_util_inc)/StringUtil.h
g++ -m32 -o $(Lib_util_obj)/CommandRunner.o -g -c -I $(Lib_util_inc) $(Lib_util_src)/CommandRunner.cpp
$(Lib_util_obj)/FileInputStream.o: $(Lib_util_src)/FileInputStream.cpp $(Lib_util_inc)/FileInputStream.h $(Lib_util_inc)/InputStream.h $(Lib_util_inc)/CS240Exception.h
g++ -m32 -o $(Lib_util_obj)/FileInputStream.o -g -c -I $(Lib_util_inc) $(Lib_util_src)/FileInputStream.cpp
$(Lib_util_obj)/FileSystem.o: $(Lib_util_src)/FileSystem.cpp $(Lib_util_inc)/FileSystem.h $(Lib_util_inc)/CS240Exception.h $(Lib_util_inc)/UnitTest.h
g++ -m32 -o $(Lib_util_obj)/FileSystem.o -g -c -I $(Lib_util_inc) $(Lib_util_src)/FileSystem.cpp
$(Lib_util_obj)/HTTPInputStream.o: $(Lib_util_src)/HTTPInputStream.cpp $(Lib_util_inc)/HTTPInputStream.h $(Lib_util_inc)/InputStream.h $(Lib_util_inc)/CS240Exception.h
g++ -m32 -o $(Lib_util_obj)/HTTPInputStream.o -g -c -I utils/inc $(Lib_util_src)/HTTPInputStream.cpp
$(Lib_util_obj)/HTMLToken.o: $(Lib_util_src)/HTMLToken.cpp $(Lib_util_inc)/HTMLToken.h
g++ -m32 -o $(Lib_util_obj)/HTMLToken.o -g -c -I $(Lib_util_inc) $(Lib_util_src)/HTMLToken.cpp
$(Lib_util_obj)/URLInputStream.o: $(Lib_util_src)/URLInputStream.cpp $(Lib_util_inc)/URLInputStream.h
g++ -m32 -o $(Lib_util_obj)/URLInputStream.o -g -c -I $(Lib_util_inc) $(Lib_util_src)/URLInputStream.cpp
$(Lib_util_obj)/HTMLTokenizer.o: $(Lib_util_src)/HTMLTokenizer.cpp $(Lib_util_inc)/HTMLTokenizer.h
g++ -m32 -o $(Lib_util_obj)/HTMLTokenizer.o -g -c -I $(Lib_util_inc) $(Lib_util_src)/HTMLTokenizer.cpp
$(Lib_util_obj)/StringUtil.o: $(Lib_util_src)/StringUtil.cpp $(Lib_util_inc)/StringUtil.h
g++ -m32 -o $(Lib_util_obj)/StringUtil.o -g -c -I $(Lib_util_inc) $(Lib_util_src)/StringUtil.cpp
这makefile是人工写的吧?
[解决办法]
这算很小很小的makefile了
[解决办法]
人工写一般都是些通用的, 这样的太蛋疼了.
[解决办法]
大项目的Makefile都是自动生成的。。
听说过automake和autoconfig吗
[解决办法]
这很明显是生成的, 人写的话都是用隐式推导的, 不会一个object一个object的写。
[解决办法]
用cmake的路过