uevent monitor
[cinitramfs.git] / makefile
bloba47a4aa611fe473036d5feac25415801e16463bf
1 include conf.mk
3 .PHONY:all dirs clean am_i_root help uevent_monitor
5 DIRS=\
6 $(OBJ_DIR) \
7 $(MODULES_DIR) \
8 $(CPIO_DIR)/dev
10 OBJS=\
11 $(OBJ_DIR)/init.o \
12 $(OBJ_DIR)/modules.o
14 ifdef DEBUG
15 ULINUX_DEBUG_OBJS=\
16 $(OBJ_DIR)/mem.o \
17 $(OBJ_DIR)/string.o \
18 $(OBJ_DIR)/vsprintf.o
20 OBJS+= $(ULINUX_DEBUG_OBJS)
21 endif
23 help:
24 @echo "targets are 'all', 'help'(this output), 'clean', 'uevent_monitor'"
25 @echo -e "you can configure the build with the following variables:\\n\
26 SYSROOT, KERNEL_VERSION, ARCH, MODULES, SCSI_WAIT, CC, LD, CFLAGS, LDFLAGS\\n\
27 (you can tune the conf.mk file)"
29 all:am_i_root dirs ulinux/arch $(BUILD_DIR)/initramfs.cpio.xz
31 am_i_root:
32 @if [ $$(whoami) != root ];then echo *ERROR* must be root to build;false;fi
34 dirs:$(DIRS)
35 $(DIRS):
36 -mkdir -p $@
38 ulinux/arch:
39 ln -s archs/$(ARCH) ulinux/arch
41 #===============================================================================
42 ifdef DEBUG
43 $(OBJ_DIR)/mem.o:ulinux/arch/utils/mem.c
44 $(CC) $(CFLAGS) -c $< -o $@
46 $(OBJ_DIR)/string.o:ulinux/utils/ascii/string/string.c
47 $(CC) $(CFLAGS) -c $< -o $@
49 $(OBJ_DIR)/vsprintf.o:ulinux/utils/ascii/string/vsprintf.c
50 $(CC) $(CFLAGS) -c $< -o $@
51 endif
52 #===============================================================================
54 $(CPIO_DIR)/dev/console:
55 mknod --mode=0600 $(CPIO_DIR)/dev/console c 5 1
57 $(BUILD_DIR)/initramfs.cpio:$(CPIO_DIR)/init $(CPIO_DIR)/dev/console
58 chown -R 0:0 $(CPIO_DIR)
59 DEST_FILE=$$(realpath $(BUILD_DIR))/initramfs.cpio;\
60 cd $(CPIO_DIR);\
61 find . -depth -print | cpio --format=newc --create >$${DEST_FILE}
63 $(BUILD_DIR)/initramfs.cpio.xz:$(BUILD_DIR)/initramfs.cpio
64 xz --force --check=crc32 --extreme $<
66 $(OBJ_DIR)/modules.o:modules.c modules_list.h
67 $(CC) $(CFLAGS) -c $< -o $@
69 $(OBJ_DIR)/init.o:init.c modules.h
70 $(CC) $(CFLAGS) -c $< -o $@
72 $(CPIO_DIR)/init:$(OBJS)
73 $(LD) $(LDFLAGS) $(OBJS) --output $@
75 modules_list.h:
76 ./script/modules_list.sh >$@
78 clean:
79 -rm -f ulinux/arch
80 -rm -Rf $(BUILD_DIR)
81 -rm -f modules_list.h
83 #===============================================================================
84 $(BUILD_DIR)/uevent_monitor:uevent_monitor.c $(ULINUX_DEBUG_OBJS)
85 $(CC) $(CFLAGS) -c $< -o /tmp/uevent_monitor.o
86 $(LD) $(LDFLAGS) /tmp/uevent_monitor.o $(ULINUX_DEBUG_OBJS) --output $@
88 uevent_monitor:dirs ulinux/arch $(BUILD_DIR)/uevent_monitor
89 #===============================================================================