亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? makefile

?? 這個是linux早期的內(nèi)核源代碼
??
字號:
## if you want the ram-disk device, define this to be the # 如果你要使用RAM 盤設(shè)備的話,就# size in blocks. # 定義塊的大小。#RAMDISK = #-DRAMDISK=512AS86 =as86 -0 -a # 8086 匯編編譯器和連接器,見列表后的介紹。后帶的參數(shù)含義分別LD86 =ld86 -0 # 是:-0 生成8086 目標程序;-a 生成與gas 和gld 部分兼容的代碼。AS =gas # GNU 匯編編譯器和連接器,見列表后的介紹。LD =gldLDFLAGS =-s -x -M # GNU 連接器gld 運行時用到的選項。含義是:-s 輸出文件中省略所# 有的符號信息;-x 刪除所有局部符號;-M 表示需要在標準輸出設(shè)備# (顯示器)上打印連接映象(link map),是指由連接程序產(chǎn)生的一種# 內(nèi)存地址映象,其中列出了程序段裝入到內(nèi)存中的位置信息。具體# 來講有如下信息:head main kernel mm fs libbootsect setup systemBuild 工具內(nèi)核映象文件Image2.8 linux/Makefile 文件# ? 目標文件及符號信息映射到內(nèi)存中的位置;# ? 公共符號如何放置;# ? 連接中包含的所有文件成員及其引用的符號。CC =gcc $(RAMDISK) # gcc 是GNU C 程序編譯器。對于UNIX 類的腳本(script)程序而言,# 在引用定義的標識符時,需在前面加上$符號并用括號括住標識符。CFLAGS =-Wall -O -fstrength-reduce -fomit-frame-pointer \-fcombine-regs -mstring-insns # gcc 的選項。前一行最后的'\'符號表示下一行是續(xù)行。# 選項含義為:-Wall 打印所有警告信息;-O 對代碼進行優(yōu)化;# -fstrength-reduce 優(yōu)化循環(huán)語句;-mstring-insns 是# Linus 自己為gcc 增加的選項,可以去掉。CPP =cpp -nostdinc -Iinclude # cpp 是gcc 的前(預(yù))處理程序。-nostdinc -Iinclude 的含# 義是不要搜索標準的頭文件目錄中的文件,而是使用-I# 選項指定的目錄或者是在當前目錄里搜索頭文件。## ROOT_DEV specifies the default root-device when making the image.# This can be either FLOPPY, /dev/xxxx or empty, in which case the# default of /dev/hd6 is used by 'build'.#ROOT_DEV=/dev/hd6 # ROOT_DEV 指定在創(chuàng)建內(nèi)核映像(image)文件時所使用的默認根文件系統(tǒng)所# 在的設(shè)備,這可以是軟盤(FLOPPY)、/dev/xxxx 或者干脆空著,空著時# build 程序(在tools/目錄中)就使用默認值/dev/hd6。ARCHIVES=kernel/kernel.o mm/mm.o fs/fs.o # kernel 目錄、mm 目錄和fs 目錄所產(chǎn)生的目標代# 碼文件。為了方便引用在這里將它們用# ARCHIVES(歸檔文件)標識符表示。DRIVERS =kernel/blk_drv/blk_drv.a kernel/chr_drv/chr_drv.a # 塊和字符設(shè)備庫文件。.a 表# 示該文件是個歸檔文件,也即包含有許多可執(zhí)行二進制代碼子程# 序集合的庫文件,通常是用GNU 的ar 程序生成。ar 是GNU 的二進制# 文件處理程序,用于創(chuàng)建、修改以及從歸檔文件中抽取文件。MATH =kernel/math/math.a # 數(shù)學(xué)運算庫文件。LIBS =lib/lib.a # 由lib/目錄中的文件所編譯生成的通用庫文件。.c.s: # make 老式的隱式后綴規(guī)則。該行指示make 利用下面的命令將所有的# .c 文件編譯生成.s 匯編程序。':'表示下面是該規(guī)則的命令。$(CC) $(CFLAGS) \-nostdinc -Iinclude -S -o $*.s $< # 指使gcc 采用前面CFLAGS 所指定的選項以及# 僅使用include/目錄中的頭文件,在適當?shù)鼐幾g后不進行匯編就# 停止(-S),從而產(chǎn)生與輸入的各個C 文件對應(yīng)的匯編語言形式的# 代碼文件。默認情況下所產(chǎn)生的匯編程序文件是原C 文件名去掉.c# 而加上.s 后綴。-o 表示其后是輸出文件的形式。其中$*.s(或$@)# 是自動目標變量,$<代表第一個先決條件,這里即是符合條件# *.c 的文件。.s.o: # 表示將所有.s 匯編程序文件編譯成.o 目標文件。下一條是實# 現(xiàn)該操作的具體命令。$(AS) -c -o $*.o $< # 使用gas 編譯器將匯編程序編譯成.o 目標文件。-c 表示只編譯# 或匯編,但不進行連接操作。.c.o: # 類似上面,*.c 文件-??*.o 目標文件。$(CC) $(CFLAGS) \-nostdinc -Iinclude -c -o $*.o $< # 使用gcc 將C 語言文件編譯成目標文件但不連接。all: Image # all 表示創(chuàng)建Makefile 所知的最頂層的目標。這里即是image 文件。2.8 linux/Makefile 文件Image: boot/bootsect boot/setup tools/system tools/build # 說明目標(Image 文件)是由# 分號后面的4 個元素產(chǎn)生,分別是boot/目錄中的bootsect 和# setup 文件、tools/目錄中的system 和build 文件。tools/build boot/bootsect boot/setup tools/system $(ROOT_DEV) > Imagesync # 這兩行是執(zhí)行的命令。第一行表示使用tools 目錄下的build 工具# 程序(下面會說明如何生成)將bootsect、setup 和system 文件# 以$(ROOT_DEV)為根文件系統(tǒng)設(shè)備組裝成內(nèi)核映像文件Image。# 第二行的sync 同步命令是迫使緩沖塊數(shù)據(jù)立即寫盤并更新超級塊。disk: Image # 表示disk 這個目標要由Image 產(chǎn)生。dd bs=8192 if=Image of=/dev/PS0 # dd 為UNIX 標準命令:復(fù)制一個文件,根據(jù)選項# 進行轉(zhuǎn)換和格式化。bs=表示一次讀/寫的字節(jié)數(shù)。# if=表示輸入的文件,of=表示輸出到的文件。# 這里/dev/PS0 是指第一個軟盤驅(qū)動器(設(shè)備文件)。tools/build: tools/build.c # 由tools 目錄下的build.c 程序生成執(zhí)行程序build。$(CC) $(CFLAGS) \-o tools/build tools/build.c # 編譯生成執(zhí)行程序build 的命令。boot/head.o: boot/head.s # 利用上面給出的.s.o 規(guī)則生成head.o 目標文件。tools/system: boot/head.o init/main.o \$(ARCHIVES) $(DRIVERS) $(MATH) $(LIBS) # 表示tools 目錄中的system 文件# 要由分號右邊所列的元素生成。$(LD) $(LDFLAGS) boot/head.o init/main.o \$(ARCHIVES) \$(DRIVERS) \$(MATH) \$(LIBS) \-o tools/system > System.map # 生成system 的命令。最后的 > System.map 表示# gld 需要將連接映象重定向存放在System.map 文件中。# 關(guān)于System.map 文件的用途參見注釋后的說明。kernel/math/math.a: # 數(shù)學(xué)協(xié)處理函數(shù)文件math.a 由下一行上的命令實現(xiàn)。(cd kernel/math; make) # 進入kernel/math/目錄;運行make 工具程序。# 下面從66--82 行的含義與此處的類似。kernel/blk_drv/blk_drv.a: # 塊設(shè)備函數(shù)文件blk_drv.a(cd kernel/blk_drv; make)kernel/chr_drv/chr_drv.a: # 字符設(shè)備函數(shù)文件chr_drv.a(cd kernel/chr_drv; make)kernel/kernel.o: # 內(nèi)核目標模塊kernel.o(cd kernel; make)mm/mm.o: # 內(nèi)存管理模塊mm.o(cd mm; make)fs/fs.o: # 文件系統(tǒng)目標模塊fs.o(cd fs; make)lib/lib.a: # 庫函數(shù)lib.a2.8 linux/Makefile 文件(cd lib; make)boot/setup: boot/setup.s # 這里開始的三行是使用8086 匯編和連接器$(AS86) -o boot/setup.o boot/setup.s # 對setup.s 文件進行編譯生成setup 文件。$(LD86) -s -o boot/setup boot/setup.o # -s 選項表示要去除目標文件中的符號信息。boot/bootsect: boot/bootsect.s # 同上。生成bootsect.o 磁盤引導(dǎo)塊。$(AS86) -o boot/bootsect.o boot/bootsect.s$(LD86) -s -o boot/bootsect boot/bootsect.otmp.s: boot/bootsect.s tools/system # 從92--95 這四行的作用是在bootsect.s 程序開頭添加# 一行有關(guān)system 文件長度信息。方法是首先生成含有“SYSSIZE = system 文件實際長度”# 一行信息的tmp.s 文件,然后將bootsect.s 文件添加在其后。取得system 長度的方法是:# 首先利用命令ls 對system 文件進行長列表顯示,用grep 命令取得列表行上文件字節(jié)數(shù)字段# 信息,并定向保存在tmp.s 臨時文件中。cut 命令用于剪切字符串,tr 用于去除行尾的回車符。# 其中:(實際長度 + 15)/16 用于獲得用‘節(jié)’表示的長度信息。1 節(jié) = 16 字節(jié)。(echo -n "SYSSIZE = (";ls -l tools/system | grep system \| cut -c25-31 | tr '\012' ' '; echo "+ 15 ) / 16") > tmp.scat boot/bootsect.s >> tmp.sclean: # 當執(zhí)行'make clean'時,就會執(zhí)行98--103 行上的命令,去除所有編譯連接生成的文件。# 'rm'是文件刪除命令,選項-f 含義是忽略不存在的文件,并且不顯示刪除信息。rm -f Image System.map tmp_make core boot/bootsect boot/setuprm -f init/*.o tools/system tools/build boot/*.o(cd mm;make clean) # 進入mm/目錄;執(zhí)行該目錄Makefile 文件中的clean 規(guī)則。(cd fs;make clean)(cd kernel;make clean)(cd lib;make clean)backup: clean # 該規(guī)則將首先執(zhí)行上面的clean 規(guī)則,然后對linux/目錄進行壓縮,生成# backup.Z 壓縮文件。'cd .. '表示退到linux/的上一級(父)目錄;# 'tar cf - linux'表示對linux/目錄執(zhí)行tar 歸檔程序。-cf 表示需要創(chuàng)建# 新的歸檔文件 '| compress -'表示將tar 程序的執(zhí)行通過管道操作('|')# 傳遞給壓縮程序compress,并將壓縮程序的輸出存成backup.Z 文件。(cd .. ; tar cf - linux | compress - > backup.Z)sync # 迫使緩沖塊數(shù)據(jù)立即寫盤并更新磁盤超級塊。dep:# 該目標或規(guī)則用于各文件之間的依賴關(guān)系。創(chuàng)建的這些依賴關(guān)系是為了給make 用來確定是否需要要# 重建一個目標對象的。比如當某個頭文件被改動過后,make 就通過生成的依賴關(guān)系,重新編譯與該# 頭文件有關(guān)的所有*.c 文件。具體方法如下:# 使用字符串編輯程序sed 對Makefile 文件(這里即是自己)進行處理,輸出為刪除Makefile# 文件中'### Dependencies'行后面的所有行(下面從118 開始的行),并生成tmp_make# 臨時文件(也即110 行的作用)。然后對init/目錄下的每一個C 文件(其實只有一個文件# main.c)執(zhí)行g(shù)cc 預(yù)處理操作,-M 標志告訴預(yù)處理程序輸出描述每個目標文件相關(guān)性的規(guī)則,# 并且這些規(guī)則符合make 語法。對于每一個源文件,預(yù)處理程序輸出一個make 規(guī)則,其結(jié)果# 形式是相應(yīng)源程序文件的目標文件名加上其依賴關(guān)系--該源文件中包含的所有頭文件列表。# 111 行中的$$i 實際上是$($i)的意思。這里$i 是這句前面的shell 變量的值。# 然后把預(yù)處理結(jié)果都添加到臨時文件tmp_make 中,然后將該臨時文件復(fù)制成新的Makefile 文件。sed '/\#\#\# Dependencies/q' < Makefile > tmp_make(for i in init/*.c;do echo -n "init/";$(CPP) -M $$i;done) >> tmp_makecp tmp_make Makefile(cd fs; make dep) # 對fs/目錄下的Makefile 文件也作同樣的處理。2.8 linux/Makefile 文件- 30 -(cd kernel; make dep)(cd mm; make dep)### Dependencies:init/main.o : init/main.c include/unistd.h include/sys/stat.h \include/sys/types.h include/sys/times.h include/sys/utsname.h \include/utime.h include/time.h include/linux/tty.h include/termios.h \include/linux/sched.h include/linux/head.h include/linux/fs.h \include/linux/mm.h include/signal.h include/asm/system.h include/asm/io.h \include/stddef.h include/stdarg.h include/fcntl.h

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
视频在线观看一区二区三区| 日韩av在线发布| 亚洲高清在线视频| 国产一区二区三区四| 欧美午夜精品久久久| 久久午夜羞羞影院免费观看| 亚洲国产综合视频在线观看| 丁香婷婷综合网| 精品国内片67194| 午夜一区二区三区在线观看| 成人黄色一级视频| 欧美精品一区二区三区高清aⅴ| 亚洲精品综合在线| 成人听书哪个软件好| 日韩精品一区二区三区视频播放 | 中文字幕永久在线不卡| 六月婷婷色综合| 3d成人动漫网站| 亚洲国产综合91精品麻豆| 大桥未久av一区二区三区中文| 精品少妇一区二区三区| 日韩高清中文字幕一区| 欧美三级视频在线| 亚洲一区免费视频| 色综合久久久久| 亚洲人成伊人成综合网小说| 高清不卡一区二区| 中文字幕第一页久久| 国产精品77777竹菊影视小说| 精品欧美一区二区久久| 蜜臀国产一区二区三区在线播放| 欧美日韩国产大片| 日本不卡一二三区黄网| 日韩一级视频免费观看在线| 日韩综合小视频| 精品国精品国产| 国产精品一区二区在线观看不卡| 精品福利一二区| 国产成人一区二区精品非洲| 精品免费国产二区三区| 麻豆国产欧美日韩综合精品二区| 精品国产污污免费网站入口| 国产在线看一区| 欧美韩国一区二区| 91美女片黄在线观看| 亚洲国产日韩综合久久精品| 欧美放荡的少妇| 精品一区二区久久| 国产精品日产欧美久久久久| 91蝌蚪国产九色| 天堂影院一区二区| 精品盗摄一区二区三区| 成人sese在线| 亚洲国产日韩一区二区| 日韩视频免费观看高清在线视频| 国内精品在线播放| 国产精品污污网站在线观看| 色婷婷香蕉在线一区二区| 午夜精品久久久久久久久久| 精品剧情在线观看| 99精品桃花视频在线观看| 亚洲国产精品久久人人爱| 欧美mv日韩mv亚洲| 91色在线porny| 蜜乳av一区二区| 国产精品美女www爽爽爽| 欧美午夜影院一区| 国产激情一区二区三区四区| 亚洲精品综合在线| 精品成人佐山爱一区二区| 色欲综合视频天天天| 九九**精品视频免费播放| 国产精品白丝在线| 日韩一级二级三级精品视频| caoporm超碰国产精品| 日本aⅴ免费视频一区二区三区| 国产午夜亚洲精品理论片色戒| 一本大道久久a久久综合| 久久精品理论片| 亚洲三级免费观看| 久久久国产一区二区三区四区小说| 91社区在线播放| 国产精品自拍一区| 欧美bbbbb| 尤物在线观看一区| 中文字幕高清不卡| wwwwxxxxx欧美| 精品视频免费在线| 92国产精品观看| 国产乱人伦偷精品视频不卡| 亚洲不卡在线观看| 亚洲欧美日韩国产手机在线| www国产成人| 日韩一区二区三区电影在线观看| 亚洲欧洲在线观看av| 国产乱子轮精品视频| 亚洲在线免费播放| 最新成人av在线| 日本一区二区动态图| 精品国产乱码久久久久久免费| 欧美日韩国产在线播放网站| 91美女在线观看| 91在线观看污| 不卡的看片网站| 成人激情免费电影网址| 国产一区二区不卡在线| 热久久久久久久| 青青青伊人色综合久久| 五月婷婷久久丁香| 亚洲gay无套男同| 久久精品免费在线观看| 欧美日韩高清影院| 在线观看av一区二区| 激情文学综合网| 看国产成人h片视频| 日本最新不卡在线| 久久精品国产**网站演员| 日本女人一区二区三区| 日韩影院免费视频| 免费av成人在线| 久久精品99久久久| 国产精品一区二区无线| 成人性生交大片免费看视频在线 | 欧美大片在线观看| 日韩美女主播在线视频一区二区三区 | 91麻豆产精品久久久久久| caoporn国产精品| 色综合久久久久网| 欧美另类z0zxhd电影| 欧美一区二区三区色| 欧美xxxxx牲另类人与| 久久久久国产免费免费 | 日韩区在线观看| 欧美精品一区二区三区蜜桃视频| 国产午夜精品一区二区三区四区| 国产日产欧美一区二区视频| 国产精品久久久久影视| 亚洲免费观看高清完整版在线| 一区二区欧美在线观看| 日韩av在线免费观看不卡| 国产一区999| 99久久国产综合精品女不卡| 欧美日韩国产欧美日美国产精品| 欧美一级艳片视频免费观看| 久久久久久久网| 一区二区三区不卡视频在线观看 | 777午夜精品视频在线播放| 欧美一三区三区四区免费在线看| 精品久久久久久综合日本欧美| 国产精品午夜在线| 午夜日韩在线观看| 国产成人精品www牛牛影视| 91极品美女在线| 精品国内片67194| 一区二区三区在线影院| 久久精品久久久精品美女| 91在线看国产| 日韩午夜在线播放| 亚洲精品乱码久久久久久久久 | 国产福利91精品一区二区三区| 91丨九色丨蝌蚪丨老版| 欧美大肚乱孕交hd孕妇| 亚洲色图制服诱惑 | 99久久精品国产精品久久| 日韩一区二区影院| 一区二区三区不卡视频| 国产成人在线视频免费播放| 欧美丰满一区二区免费视频| 国产精品久久久久久久久久免费看 | 日韩精品91亚洲二区在线观看| 国产不卡高清在线观看视频| 欧美一区二区三区男人的天堂| 国产精品电影一区二区三区| 久久99热这里只有精品| 欧美日韩一二区| 亚洲色大成网站www久久九九| 国产中文字幕精品| 日韩一区二区中文字幕| 亚洲成人动漫在线免费观看| 91社区在线播放| 国产精品免费久久| 国产麻豆成人精品| 欧美一卡二卡三卡| 丝袜美腿亚洲色图| 欧美日韩国产系列| 亚洲sss视频在线视频| 日本精品一区二区三区高清| 国产精品久线在线观看| 国产成人在线色| 国产偷国产偷亚洲高清人白洁| 久久国产日韩欧美精品| 欧美一区二区日韩| 爽好久久久欧美精品| 欧美群妇大交群的观看方式| 亚洲一区二区视频在线观看| 色婷婷国产精品综合在线观看| 中文字幕日韩一区二区| av网站免费线看精品| 中文av一区特黄| 91小视频在线免费看|