日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux arm sbus,嵌入式ARM系列linux2.4配置makefile完全注释(2)

發布時間:2023/12/20 linux 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux arm sbus,嵌入式ARM系列linux2.4配置makefile完全注释(2) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

#驅動程序選項依賴文件添加處

DRIVERS-n :=

DRIVERS-y :=

DRIVERS-m :=

DRIVERS-?:=

DRIVERS-$(CONFIG_ACPI_BOOT) += drivers/acpi/acpi.o

DRIVERS-$(CONFIG_PARPORT) += drivers/parport/driver.o

DRIVERS-y += drivers/serial/serial.o \

drivers/char/char.o \

drivers/block/block.o \

drivers/misc/misc.o \

drivers/net/net.o

DRIVERS-$(CONFIG_AGP) += drivers/char/agp/agp.o

DRIVERS-$(CONFIG_DRM_NEW) += drivers/char/drm/drm.o

DRIVERS-$(CONFIG_DRM_OLD) += drivers/char/drm-4.0/drm.o

DRIVERS-$(CONFIG_NUBUS) += drivers/nubus/nubus.a

DRIVERS-$(CONFIG_NET_FC) += drivers/net/fc/fc.o

DRIVERS-$(CONFIG_DEV_APPLETALK) +=

drivers/net/appletalk/appletalk.o

DRIVERS-$(CONFIG_TR) += drivers/net/tokenring/tr.o

DRIVERS-$(CONFIG_WAN) += drivers/net/wan/wan.o

DRIVERS-$(CONFIG_ARCNET) += drivers/net/arcnet/arcnetdrv.o

DRIVERS-$(CONFIG_ATM) += drivers/atm/atm.o

DRIVERS-$(CONFIG_IDE) += drivers/ide/idedriver.o

DRIVERS-$(CONFIG_FC4) += drivers/fc4/fc4.a

DRIVERS-$(CONFIG_SCSI) += drivers/scsi/scsidrv.o

DRIVERS-$(CONFIG_FUSION_BOOT) +=

drivers/message/fusion/fusion.o

DRIVERS-$(CONFIG_IEEE1394) += drivers/ieee1394/ieee1394drv.o

ifneq

($(CONFIG_CD_NO_IDESCSI)$(CONFIG_BLK_DEV_IDECD)$(CONFIG_BLK_DEV_SR)$(CONFIG_PARIDE_PCD),)

DRIVERS-y += drivers/cdrom/driver.o

endif

DRIVERS-$(CONFIG_SOUND) += drivers/sound/sounddrivers.o

DRIVERS-$(CONFIG_PCI) += drivers/pci/driver.o

DRIVERS-$(CONFIG_MTD) += drivers/mtd/mtdlink.o

DRIVERS-$(CONFIG_PCMCIA) += drivers/pcmcia/pcmcia.o

DRIVERS-$(CONFIG_NET_PCMCIA) +=

drivers/net/pcmcia/pcmcia_net.o

DRIVERS-$(CONFIG_NET_WIRELESS) +=

drivers/net/wireless/wireless_net.o

DRIVERS-$(CONFIG_PCMCIA_CHRDEV) +=

drivers/char/pcmcia/pcmcia_char.o

DRIVERS-$(CONFIG_DIO) += drivers/dio/dio.a

DRIVERS-$(CONFIG_SBUS) += drivers/sbus/sbus_all.o

DRIVERS-$(CONFIG_ZORRO) += drivers/zorro/driver.o

DRIVERS-$(CONFIG_FC4) += drivers/fc4/fc4.a

DRIVERS-$(CONFIG_PPC32) += drivers/macintosh/macintosh.o

DRIVERS-$(CONFIG_MAC) += drivers/macintosh/macintosh.o

DRIVERS-$(CONFIG_ISAPNP) += drivers/pnp/pnp.o

DRIVERS-$(CONFIG_SGI_IP22) += drivers/sgi/sgi.a

DRIVERS-$(CONFIG_VT) += drivers/video/video.o

DRIVERS-$(CONFIG_PARIDE) += drivers/block/paride/paride.a

DRIVERS-$(CONFIG_HAMRADIO) += drivers/net/hamradio/hamradio.o

DRIVERS-$(CONFIG_TC) += drivers/tc/tc.a

DRIVERS-$(CONFIG_USB) += drivers/usb/usbdrv.o

DRIVERS-$(CONFIG_USB_GADGET) += drivers/usb/gadget/built-in.o

DRIVERS-y +=drivers/media/media.o

DRIVERS-$(CONFIG_INPUT) += drivers/input/inputdrv.o

DRIVERS-$(CONFIG_HIL) += drivers/hil/hil.o

DRIVERS-$(CONFIG_I2O) += drivers/message/i2o/i2o.o

DRIVERS-$(CONFIG_IRDA) += drivers/net/irda/irda.o

DRIVERS-$(CONFIG_I2C) += drivers/i2c/i2c.o

DRIVERS-$(CONFIG_PHONE) += drivers/telephony/telephony.o

DRIVERS-$(CONFIG_MD) += drivers/md/mddev.o

DRIVERS-$(CONFIG_GSC) += drivers/gsc/gscbus.o

DRIVERS-$(CONFIG_BLUEZ) += drivers/bluetooth/bluetooth.o

DRIVERS-$(CONFIG_HOTPLUG_PCI) +=

drivers/hotplug/vmlinux-obj.o

DRIVERS-$(CONFIG_ISDN_BOOL) += drivers/isdn/vmlinux-obj.o

DRIVERS-$(CONFIG_CRYPTO) += crypto/crypto.o

DRIVERS := $(DRIVERS-y)

# files removed with 'make clean'

CLEAN_FILES = \

kernel/ksyms.lst include/linux/compile.h \

$(LINUX) System.map \

.tmp* \

drivers/char/consolemap_deftbl.c

drivers/video/promcon_tbl.c \

drivers/char/conmakehash \

drivers/char/drm\1/'

uts_nodomain := sed -e 's/[.].*$$//'

#新版本建立的第二步

include/linux/compile.h: $(CONFIGURATION) include/linux/version.h

newversion

@echo -n \#`cat .version` >

.ver1

@if [ -n "$(CONFIG_SMP)" ] ; then echo -n " SMP"

>> .ver1; fi

@if [ -f .name ]; then?echo -n

\-`cat .name` >> .ver1; fi

@LANG=C echo ' '`date`

>> .ver1

@echo \#define UTS_VERSION \"`cat .ver1 |

$(uts_truncate)`\" > .ver

@LANG=C echo \#define LINUX_COMPILE_TIME \"`date

+%T`\" >> .ver

@echo \#define LINUX_COMPILE_BY \"`whoami`\"

>> .ver

@echo \#define LINUX_COMPILE_HOST \"`hostname |

$(uts_truncate) | $(uts_nodomain)`\"

>> .ver

@([ -x /bin/dnsdomainname ]

&& /bin/dnsdomainname

> .ver1) || \

([ -x /bin/domainname ]

&& /bin/domainname >

.ver1) || \

echo > .ver1

@echo \#define LINUX_COMPILE_DOMAIN \"`cat .ver1

| $(uts_truncate)`\" >> .ver

@echo \#define LINUX_COMPILER \"`$(CC) $(CFLAGS)

-v 2>&1 | tail -n 1`\"

>> .ver

@mv -f .ver $@

@rm -f .ver1

#新版本建立的第三步

include/linux/version.h: ./Makefile

@expr length "$(KERNELRELEASE)"

\<= $(uts_len) > /dev/null || \

(echo KERNELRELEASE

\"$(KERNELRELEASE)\" exceeds $(uts_len) characters

>&2; false)

@echo \#define UTS_RELEASE \"$(KERNELRELEASE)\"

> .ver

@echo \#define LINUX_VERSION_CODE `expr

$(VERSION) \\* 65536 + $(PATCHLEVEL) \\* 256 + $(SUBLEVEL)`

>> .ver

@echo '#define KERNEL_VERSION(a,b,c) (((a)

<< 16) + ((b)

<< 8) + (c))'

>>.ver

@mv -f .ver $@

#

comma := ,

#建立版本目標文件

init/version.o: init/version.c include/linux/compile.h

include/config/MARKER

$(CC) $(CFLAGS) $(CFLAGS_KERNEL)

-DUTS_MACHINE='"$(ARCH)"' -DKBUILD_BASENAME=$(subst

$(comma),_,$(subst -,_,$(*F))) -c -o init/version.o

init/version.c

#生成main.O的規則

init/main.o: init/main.c include/config/MARKER

$(CC) $(CFLAGS) $(CFLAGS_KERNEL) $(PROFILING)

-DKBUILD_BASENAME=$(subst $(comma),_,$(subst -,_,$(*F))) -c -o $@

$<

#生成do_mounts的規則

init/do_mounts.o: init/do_mounts.c include/config/MARKER

$(CC) $(CFLAGS) $(CFLAGS_KERNEL) $(PROFILING)

-DKBUILD_BASENAME=$(subst $(comma),_,$(subst -,_,$(*F))) -c -o $@

$<

#一起編譯fs lib mm ipc kernel drivers net的各自相關make命令:fs lib mm ipc

kernel drivers net

fs lib mm ipc kernel drivers net: dummy

$(MAKE) CFLAGS="$(CFLAGS) $(CFLAGS_KERNEL)"

$(subst $@, _dir_$@, $@)

TAGS: dummy

{ find include/asm-${ARCH} -name '*.h' -print ;

\

find include -type d \( -name "asm-*" -o -name

config \) -prune -o -name '*.h' -print ; \

find $(SUBDIRS) init arch/${ARCH} -name '*.[chS]'

; } | grep -v SCCS | grep -v '\.svn' | etags -

# Exuberant ctags works better with -I

tags: dummy

CTAGSF=`ctags --version | grep -i exuberant

>/dev/null && echo

"-I __initdata,__exitdata,EXPORT_SYMBOL,EXPORT_SYMBOL_NOVERS"`;

\

ctags $$CTAGSF `find include/asm-$(ARCH) -name

'*.h'` && \

find include -type d \( -name "asm-*" -o -name

config \) -prune -o -name '*.h' -print | xargs ctags $$CTAGSF -a

&& \

find $(SUBDIRS) init -name '*.[ch]' | xargs ctags

$$CTAGSF -a

#定義與模塊有關的make命令

#第一步

ifdef CONFIG_MODULES

ifdef CONFIG_MODVERSIONS

MODFLAGS += -DMODVERSIONS -include

$(HPATH)/linux/modversions.h

endif

#第二步

.PHONY: modules

modules: $(patsubst %, _mod_%, $(SUBDIRS))

.PHONY: $(patsubst %, _mod_%, $(SUBDIRS))

$(patsubst %, _mod_%, $(SUBDIRS)) : include/linux/version.h

include/config/MARKER

$(MAKE) -C $(patsubst _mod_%, %, $@)

CFLAGS="$(CFLAGS) $(MODFLAGS)" MAKING_MODULES=1 modules

#第三步

.PHONY: modules_install

modules_install: _modinst_ $(patsubst %, _modinst_%, $(SUBDIRS))

_modinst_post

.PHONY: _modinst_

ifeq ($(CONFIG_UCLINUX),y)

_modinst_:

else

_modinst_:

@rm -rf $(MODLIB)/kernel

@rm -f $(MODLIB)/build

@mkdir -p $(MODLIB)/kernel

@ln -s $(TOPDIR) $(MODLIB)/build

endif

# If System.map exists, run depmod.?This

deliberately does not have a

# dependency on System.map since that would run the dependency tree

on

# vmlinux.?This depmod is only for convenience to

give the initial

# boot a modules.dep even before / is mounted

read-write.?However the

# boot script depmod is the master version.

ifeq "$(strip $(INSTALL_MOD_PATH))" ""

depmod_opts :=

else

depmod_opts := -b $(INSTALL_MOD_PATH) -r

endif

.PHONY: _modinst_post

_modinst_post: _modinst_post_pcmcia

if [ -r System.map ]; then $(DEPMOD) -ae -F

System.map $(depmod_opts) $(KERNELRELEASE); fi

# Backwards compatibilty symlinks for people still using old

versions

# of pcmcia-cs with hard coded pathnames on

insmod.?Remove

# _modinst_post_pcmcia for kernel 2.4.1.

.PHONY: _modinst_post_pcmcia

_modinst_post_pcmcia:

cd $(MODLIB); \

mkdir -p pcmcia; \

find kernel -path '*/pcmcia/*' -name '*.o' |

xargs -i -r ln -sf ../{} pcmcia

.PHONY: $(patsubst %, _modinst_%, $(SUBDIRS))

$(patsubst %, _modinst_%, $(SUBDIRS)) :

$(MAKE) -C $(patsubst _modinst_%, %, $@)

modules_install

#第四步

# modules disabled....

else

modules modules_install: dummy

@echo

@echo "The present kernel configuration has

modules disabled."

@echo "Type 'make config' and enable loadable

module support."

@echo "Then build a kernel with module support

enabled."

@echo

@exit 1

endif

#關于清楚的make命令:clean 功能刪除一些在文件編譯中產生文件

clean: archclean

find . \( -name '*.[oas]' -o -name core -o -name

'.*.flags' \) -type f -print \

| grep -v lxdialog/ | xargs rm -f

rm -f $(CLEAN_FILES)

rm -rf $(CLEAN_DIRS)

$(MAKE) -C Documentation/DocBook clean

#關于清楚的make命令:mrproper 比clean更徹底

mrproper: clean archmrproper

find . \( -size 0 -o -name .depend \) -type f

-print | xargs rm -f

rm -f $(MRPROPER_FILES)

rm -rf $(MRPROPER_DIRS)

$(MAKE) -C Documentation/DocBook mrproper

#關于清楚的make命令:distclean 最徹底的清除指令

distclean: mrproper

rm -f core `find . \( -not -type d \) -and

\

\( -name '*.orig' -o -name '*.rej' -o -name '*~'

\

-o -name '*.bak' -o -name '#*#' -o -name

'.*.orig' \

-o -name '.*.rej' -o -name '.SUMS' -o -size 0 \)

-type f -print` TAGS tags

#系統備份的make命令:backup 因為mrproper位清除指令,因此系統備份就 在清除了系統垃圾以后的備份

backup: mrproper

cd .. && tar cf -

linux/ | gzip -9 > backup.gz

sync

sgmldocs:

chmod 755 $(TOPDIR)/scripts/docgen

chmod 755 $(TOPDIR)/scripts/gen-all-syms

chmod 755 $(TOPDIR)/scripts/kernel-doc

$(MAKE) -C $(TOPDIR)/Documentation/DocBook

books

psdocs: sgmldocs

$(MAKE) -C Documentation/DocBook ps

pdfdocs: sgmldocs

$(MAKE) -C Documentation/DocBook pdf

htmldocs: sgmldocs

$(MAKE) -C Documentation/DocBook html

mandocs:

chmod 755 $(TOPDIR)/scripts/kernel-doc

chmod 755 $(TOPDIR)/scripts/split-man

$(MAKE) -C Documentation/DocBook man

#對系統文件信息進行整合的make命令:sums

該指令可以統計uclinux源代碼中的所有文件信息,并整合形成.SUM文件

sums:

find . -type f -print | sort | xargs sum

> .SUMS

#建立編譯過程必須的文件間的依賴

dep-files: scripts/mkdep archdep include/linux/version.h

rm -f .depend .hdepend

$(MAKE) $(patsubst %,_sfdep_%,$(SUBDIRS))

_FASTDEP_ALL_SUB_DIRS="$(SUBDIRS)"

ifdef CONFIG_MODVERSIONS

$(MAKE) update-modverfile

endif

find $(FINDHPATH) \( -name SCCS -o -name .svn \)

-prune -o -follow -name \*.h ! -name modversions.h -print | xargs

scripts/mkdep --?> .hdepend

scripts/mkdep -- init/*.c >

.depend

#設定模塊版本文件

ifdef CONFIG_MODVERSIONS

MODVERFILE := $(TOPDIR)/include/linux/modversions.h

else

MODVERFILE :=

endif

export MODVERFILE

#建立依賴的make命令:depend 和dep

depend dep: dep-files

checkconfig:

find * -name '*.[hcS]' -type f -print | sort |

xargs $(PERL) -w scripts/checkconfig.pl

checkhelp:

find * -name [cC]onfig.in -print | sort | xargs

$(PERL) -w scripts/checkhelp.pl

checkincludes:

find * -name '*.[hcS]' -type f -print | sort |

xargs $(PERL) -w scripts/checkincludes.pl

ifdef CONFIGURATION

..$(CONFIGURATION):

@echo

@echo "You have a bad or nonexistent"

.$(CONFIGURATION) ": running 'make" $(CONFIGURATION)"'"

@echo

$(MAKE) $(CONFIGURATION)

@echo

@echo "Successful. Try re-making (ignore the

error that follows)"

@echo

exit 1

#當系統需要進行系統配置時和dummy的實現

#dummy: ..$(CONFIGURATION)

dummy:

else

dummy:

endif

#執行規則make文件:Rules.make

include Rules.make

#

# This generates dependencies for the .h files.

#

#腳本解析文件

scripts/mkdep: scripts/mkdep.c

$(HOSTCC) $(HOSTCFLAGS) -o scripts/mkdep

scripts/mkdep.c

scripts/split-include: scripts/split-include.c

$(HOSTCC) $(HOSTCFLAGS) -o scripts/split-include

scripts/split-include.c

#

# RPM target

#

# If you do a make spec before packing the tarball you can rpm -ta

it

#

spec:

. scripts/mkspec >kernel.spec

#

# Build a tar ball, generate an rpm from it and pack the

result

# There arw two bits of magic here

# 1) The use of /. to avoid tar packing just the symlink

# 2) Removing the .dep files as they have source paths in them

that

#?will become

invalid

#

#程序安裝rpm

rpm: clean spec

find . \( -size 0 -o -name .depend -o -name

.hdepend \) -type f -print | xargs rm -f

set -e; \

cd $(TOPDIR)/.. ; \

ln -sf $(TOPDIR) $(KERNELPATH) ; \

tar -cvz --exclude CVS -f $(KERNELPATH).tar.gz

$(KERNELPATH)/. ; \

rm $(KERNELPATH) ; \

cd $(TOPDIR) ; \

. scripts/mkversion > .version ;

\

$(RPM) -ta $(TOPDIR)/../$(KERNELPATH).tar.gz ;

\

rm $(TOPDIR)/../$(KERNELPATH).tar.gz

總結

以上是生活随笔為你收集整理的linux arm sbus,嵌入式ARM系列linux2.4配置makefile完全注释(2)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。