歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 在Linux環境下Make命令調用技巧(3)

在Linux環境下Make命令調用技巧(3)

日期:2017/2/25 10:38:20   编辑:Linux教程
 下面是描述文件的具體內容:

  1.#Description file for the Make command

  2.#Send to print

  3.P=und -3 | opr -r2

  4.#The source files that are needed by object files

  5.FILES= Makefile version.c defs main.c donamc.c misc.c file.c \

  6.dosys.c gram.y lex.c gcos.c

  7.#The definitions of object files

  8.OBJECTS= vesion.o main.o donamc.o misc.o file.o dosys.o gram.o

  9.LIBES= -LS

  10.LINT= lnit -p

  11.CFLAGS= -O

  12.Make: $(OBJECTS)

  13.cc $(CFLAGS) $(OBJECTS) $(LIBES) -o Make

  14.size Make

  15.$(OBJECTS): defs

  16.gram.o: lex.c

  17.cleanup:

  18.-rm *.o gram.c

  19.install:

  20.@size Make /usr/bin/Make

  21.cp Make /usr/bin/Make ; rm Make

  22.#print recently changed files

  23.print: $(FILES)

  24.pr $? | $P

  25.touch print

  26.test:

  27.Make -dp | grep -v TIME>1zap

  28./usr/bin/Make -dp | grep -v TIME>2zap

  29.diff 1zap 2zap

  30.rm 1zap 2zap

  31.lint: dosys.c donamc.c file.c main.c misc.c version.c gram.c

  32.$(LINT) dosys.c donamc.c file.c main.c misc.c version.c \

  33.gram.c

  34.rm gram.c

  35.arch:

  36.ar uv /sys/source/s2/Make.a $(FILE)

  通常在描述文件中應象上面一樣定義要求輸出將要執行的命令。在執行了Make命令之後,輸出結果為:

  1.$ Make

  2.cc -c version.c

  3.cc -c main.c

  4.cc -c donamc.c

  5.cc -c misc.c

  6.cc -c file.c

  7.cc -c dosys.c

  8.yacc gram.y

  9.mv y.tab.c gram.c

  10.cc -c gram.c

  11.cc version.o main.o donamc.o misc.o file.o dosys.o gram.o \

  12.-LS -o Make

  13.13188+3348+3044=19580b=046174b

  最後的數字信息是執行"@size Make"命令的輸出結果。之所以只有輸出結果而沒有相應的命令行,是因為"@size Make"命令以"@"起始,這個符號禁止打印輸出它

  所在的命令行。描述文件中的最後幾條命令行在維護編譯信息方面非常有用。其中"print"命令行的作用是打印輸出在執行過上次"Make print"命令後所有改動過的文件名稱。系統使用一個名為print的0字節文件來確定執行print命令的具體時間,而宏$?則指向那些在print 文件改動過之後進行修改的文件的文件名。如果想要指定執行print命令後,將輸出結果送入某個指定的文件,那麼就可修改P的宏定義:

  1.Make print "P= cat>zap"

  在Linux中大多數軟件提供的是源代碼,而不是現成的可執行文件,這就要求用戶根據自己系統的實際情況和自身的需要來配置、編譯源程序後,軟件才能使用。只有掌握了Make工具,才能讓我們真正享受到到Linux這個自由軟件世界的帶給我們無窮樂趣。

Copyright © Linux教程網 All Rights Reserved