- 论坛徽章:
- 11
|
-
- 1 #/bin/bash
- 2
- 3 if [ ! -d bin ]; then
- 4 mkdir bin
- 5 fi
- 6
- 7 if [ -f .mmk.conf ]; then
- 8 cat < ./.mmk.conf > makefile
- 9 else
- 10 echo "config .mmk.conf first"
- 11 echo "CXX = g++" >> ./.mmk.conf
- 12 echo "" >> ./.mmk.conf
- 13 echo "FLAGS =" >> ./.mmk.conf
- 14 echo "" >> ./.mmk.conf
- 15 echo "LIBS =" >> ./.mmk.conf
- 16 echo "" >> ./.mmk.conf
- 17 echo "LIB_PATH = -L" >> ./.mmk.conf
- 18 echo "" >> ./.mmk.conf
- 19 echo "INCLUDE = -I" >> ./.mmk.conf
- 20 echo "" >> ./.mmk.conf
- 21 echo "OUTPUT =" >> ./.mmk.conf
- 22 echo "" >> ./.mmk.conf
- 23 exit 1
- 24 fi
- 25
- 26 find -name "*.cpp" | sed 's/.*\///g' | sed 's/\.cpp/\.o/g' | sed 's/.*/bin\/&\t\t\\/g'| sed '1,1 s/.*/obj = &/' >> makefile
- 27 echo "" >> makefile
- 28
- 29 echo "main:bin all" >> makefile
- 30 echo ".PHONY:main" >> makefile
- 31 echo "" >> makefile
- 32
- 33 echo ".PHONY:bin" >> makefile
- 34 echo "bin:" >> makefile
- 35 echo " -@mkdir -p bin" >> makefile
- 36 echo "" >> makefile
- 37
- 38 echo "all:\$(obj)" >> makefile
- 39 echo " \$(CXX) -o \$(OUTPUT) \$(obj) \$(INCLUDE) \$(LIB_PATH) \$(LIBS)" >> makefile
- 40 echo "" >> makefile
- 41
- 42 find -name "*.cpp" | xargs gcc -MM | sed 's/.*\.o/bin\/&/g' | sed 's/.*.h$/&\n \$(CXX) -c $(FLAGS) $< -o $@/g' >> makefile
- 43 echo "" >> makefile
- 44
- 45 echo ".PHONY:clean" >> makefile
- 46 echo "clean:" >> makefile
- 47 echo " -@rm bin/*.o \$(OUTPUT)" >> makefile
复制代码
[ 本帖最后由 zylthinking 于 2007-12-16 20:27 编辑 ] |
|