Move objmanip invocations to ksplice.pl and apply them more locally.
[ksplice.git] / kmodsrc / Makefile
blobba582704c3e6c4f954ef15eb3baaacc99a423bb8
1 ksplice-script = /usr/local/share/ksplice/ksplice.pl
3 ifneq ($(KERNELRELEASE),)
5 CFLAGS_ksplice.o += -DKSPLICE_STANDALONE
6 CFLAGS_primary.o += -DKSPLICE_STANDALONE
7 CFLAGS_helper.o += -DKSPLICE_STANDALONE
9 ifeq ($(KSPLICE_ID),)
10 $(error "You must set KSPLICE_ID.")
11 endif
12 CFLAGS_primary.o += "-DKSPLICE_ID=$(KSPLICE_ID)"
13 CFLAGS_helper.o += "-DKSPLICE_ID=$(KSPLICE_ID)"
15 ifeq ($(map_printk),)
16 $(error "You must set map_printk.")
17 endif
18 CFLAGS_primary.o += "-DMAP_PRINTK=0x$(map_printk)L"
20 KSPLICE = ksplice-$(KSPLICE_ID)
22 obj-m = $(KSPLICE)-helper.o $(KSPLICE).o
23 $(KSPLICE)-helper-objs = helper.o collection.o.helper
24 $(KSPLICE)-objs = primary.o ksplice-rmsyms.o collection.o.primary
25 extra-y = ksplice.o
27 RMSYMS = \
28 thread_return \
29 bust_spinlocks \
30 task_curr \
31 __kernel_text_address \
32 tasklist_lock \
33 stop_machine_run \
34 module_mutex \
35 modules \
36 init_mm \
37 kallsyms_addresses \
38 kallsyms_num_syms \
39 kallsyms_names \
40 kallsyms_token_table \
41 kallsyms_token_index
43 quiet_cmd_ksplice-rmsyms = RMSYMS $@
44 cmd_ksplice-rmsyms = \
45 $(ksplice-script) rmsyms $< $(RMSYMS); \
46 ld -r -o $@ $< $(src)/ksplice.lds
47 $(obj)/ksplice-rmsyms.o: $(obj)/ksplice.o FORCE
48 $(call if_changed,ksplice-rmsyms)
50 else
52 all $(MAKECMDGOALS):
53 $(MAKE) -C $(KERNELSRC) M=$(CURDIR) $(MAKECMDGOALS)
55 .PHONY: all $(MAKECMDGOALS)
57 endif