$(src)/build_info.cid:
	@echo `git rev-parse HEAD` > $(src)/build_info.cid.tmp
	@if [ ! -f $(src)/build_info.cid ] || \
		[ `cmp -s $(src)/build_info.cid $(src)/build_info.cid.tmp` -ne 0 ]; then \
			cp $(src)/build_info.cid.tmp $(src)/build_info.cid; fi;
	@rm -f $(src)/build_info.cid.tmp

$(src)/build_info.c: $(src)/build_info.cid
	@echo "/* Automatically generated. DO NOT EDIT! */" > $(@)
	@echo "" >> $(@)
	@echo "const char build_info_date[] = { \"`date`\" };"\
		>> $(@)
	@echo "const char build_info_commitid[] = { \"`cat $(src)/build_info.cid`\" };"\
		>> $(@)
	@echo "const char build_info_version[] = { \"$(KERNELVERSION)\" };"\
		>> $(@)
	@echo "const char build_info_version_name[] = { \"$(VERNAME)\" };"\
		>> $(@)

$(src)/kconfig_info.c: .config
	@scripts/make_kconfig_info.sh $< $@

clean-files += build_info.c build_info.cid kconfig_info.c

obj-y						+= alarm.o
obj-y						+= apipe.o
obj-y						+= arena.o
obj-y						+= arsc.o
obj-y						+= atomic.o
obj-y						+= bitmap.o
obj-y						+= blockdev.o
obj-y						+= build_info.o
obj-y						+= ceq.o
obj-y						+= completion.o
obj-y						+= coreprov.o
obj-y						+= ctype.o
obj-y						+= devfs.o
obj-y						+= dmapool.o
obj-y						+= elf.o
obj-y						+= env.o
obj-y						+= err.o
obj-$(CONFIG_ETH_AUDIO)		+= eth_audio.o
obj-y						+= event.o
obj-y						+= ext2fs.o
obj-y						+= ex_table.o
obj-y						+= fdtap.o
obj-$(CONFIG_COREALLOC_FCFS) += corealloc_fcfs.o
obj-y						+= find_next_bit.o
obj-y						+= find_last_bit.o
obj-y						+= frontend.o
obj-y						+= hashtable.o
obj-y						+= hexdump.o
obj-y						+= init.o
obj-y						+= kconfig_info.o
obj-y						+= kdebug.o
obj-y						+= kfs.o
obj-y						+= kmalloc.o
obj-y						+= kreallocarray.o
obj-y						+= ktest/
obj-y						+= kthread.o
obj-y						+= manager.o
obj-y						+= mm.o
obj-y						+= monitor.o
obj-y						+= multiboot.o
obj-y						+= net/
obj-y						+= ns/
obj-y						+= profiler.o
obj-y						+= page_alloc.o
obj-y						+= pagemap.o
obj-y						+= percpu.o
obj-y						+= pmap.o
obj-y						+= printf.o
obj-y						+= printfmt.o
obj-y						+= process.o
obj-y						+= radix.o
obj-y						+= readline.o
obj-y						+= rendez.o
obj-y						+= rwlock.o
obj-y						+= scatterlist.o
obj-y						+= schedule.o
obj-y						+= slab.o
obj-y						+= smallidpool.o
obj-y						+= smp.o
obj-y						+= string.o
obj-y						+= strstr.o
obj-y						+= syscall.o
obj-y						+= taskqueue.o
obj-y						+= time.o
obj-y						+= trace.o
obj-y						+= trap.o
obj-y						+= ucq.o
obj-y						+= umem.o
obj-y						+= vfs.o
obj-y						+= vsprintf.o
