File: Makefile.in

package info (click to toggle)
modutils 2.4.26-1.2
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 1,724 kB
  • ctags: 1,708
  • sloc: ansic: 16,932; sh: 2,998; makefile: 549; lex: 490; yacc: 375
file content (153 lines) | stat: -rw-r--r-- 4,304 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
VPATH	= @srcdir@
srcdir	= @srcdir@
include	../Makefile.common

DEFSNOARCH	:= -I$(srcdir)/../include -D_GNU_SOURCE @DEFS@ $(EXTRA_DEFS)
DEFS		:= -DELF_MACHINE_H='"elf_$(ARCH).h"' -DARCH_$(ARCH) -DTAINT_URL='"$(TAINT_URL)"'

PROGS		:= insmod modprobe rmmod lsmod ksyms kallsyms modinfo

# COMB is the list of utilities to combine with insmod into one executable
COMB		:= @COMBINE_rmmod@ @COMBINE_modprobe@ @COMBINE_lsmod@ @COMBINE_ksyms@ @COMBINE_kallsyms@
COMBDEFS	:= $(addprefix -DCOMBINE_, $(COMB))
COMB_STATIC	:= $(addsuffix .static, $(COMB))

TARGETS_REAL	:= $(filter-out $(COMB),$(PROGS))
TARGETS	:= $(PROGS)

ifeq ($(insmod_static),yes)
TARGETS_REAL	+= insmod.static
TARGETS		+= insmod.static $(COMB_STATIC)
endif

INSMODOBJS	:= insmod.o
MODINFOOBJS	:= modinfo.o
ifeq (@COMBINE_kallsyms@,kallsyms)
KALLSYMSOBJS	:=
else
KALLSYMSOBJS	:= kallsyms.o
endif

# arch specific definitions for common 32/64 code

ifeq (@COMMON_sparc@,yes)
DEFS64		:= -DELF_MACHINE_H='"elf_sparc64.h"' -DARCH_sparc64
endif

ifeq (@COMMON_hppa@,yes)
DEFS64		:= -DELF_MACHINE_H='"elf_hppa64.h"' -DARCH_hppa64
endif

ifeq (@COMMON_ppc@,yes)
DEFS64		:= -DELF_MACHINE_H='"elf_ppc64.h"' -DARCH_ppc64
endif

ifeq (@COMMON_s390@,yes)
DEFS64		:= -DELF_MACHINE_H='"elf_s390x.h"' -DARCH_s390x
endif

ifeq (@COMMON_i386@,yes)
DEFS64		:= -DELF_MACHINE_H='"elf_x86_64.h"' -DARCH_x86_64
endif

# arch independent definitions for common 32/64 code

ifdef DEFS64
INSMODOBJS	+= insmod_64.o
ifeq (@COMBINE_kallsyms@,kallsyms)
INSMODOBJS	+= kallsyms_64.o
else
KALLSYMSOBJS	+= kallsyms_64.o
endif
MODINFOOBJS	+= modinfo_64.o
DEFSNOARCH	+= -DCOMMON_3264
DEFS		+= -DONLY_32
DEFS64		+= -DONLY_64 $(call check_gcc,-malign-double,)
DEFS64		+= -DTAINT_URL='"$(TAINT_URL)"'
endif

INSMODOBJS	+= $(addsuffix .o, $(COMB))

ifdef DEFS64
TARGETS+=libmodutils.a($(filter-out insmod.o insmod_64.o, $(INSMODOBJS)) combined_insmod.o combined_insmod_64.o)
else
TARGETS+=libmodutils.a($(filter-out insmod.o insmod_64.o, $(INSMODOBJS)) combined_insmod.o)
endif

combined_insmod.o: insmod.c
	$(CC) $(CFLAGS) $(DEFSNOARCH) $(DEFS) $(COMBDEFS) -Dmain=combined_insmod_main -c -o $@ $<

combined_insmod_64.o: insmod.c
	$(CC) $(CFLAGS) $(DEFSNOARCH) $(DEFS64) $(COMBDEFS) -Dmain=combined_insmod_main -c -o $@ $<


#=====================================================================

# Rule for building "to-be-combined" modutils object files
%.o: %.c
	$(CC) $(CFLAGS) $(DEFSNOARCH) $(DEFS) $(COMBDEFS) -c -o $@ $<

# Rule for building 64 bit versions, only used when building common code
# for 32 and 64 bit systems.
%_64.o: %.c
	$(CC) $(CFLAGS) $(DEFSNOARCH) $(DEFS64) $(COMBDEFS) -c -o $@ $<

# Rule for building "normal" modutils executables (non-combined)
%: %.c ../obj/libobj.a ../util/libutil.a
	$(CC) $(CFLAGS) $(DEFSNOARCH) $(DEFS) -o $@ $^ $(LDFLAGS) $(LIBS) $(ZLIB_STATIC)

#=====================================================================

all: .depend $(TARGETS)

insmod: $(INSMODOBJS) ../obj/libobj.a ../util/libutil.a
	$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LIBS) $(ZLIB_STATIC)

insmod.static: $(INSMODOBJS) ../obj/libobj.a ../util/libutil.a
	$(CC) -static $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LIBS) $(ZLIB)

$(COMB): insmod
	ln -sf $< $@

$(COMB_STATIC): insmod.static
	ln -sf $< $@

ifneq (@COMBINE_kallsyms@,kallsyms)
kallsyms: $(KALLSYMSOBJS) ../obj/libobj.a ../util/libutil.a
	$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LIBS) $(ZLIB_STATIC)
endif

modinfo: $(MODINFOOBJS) ../obj/libobj.a ../util/libutil.a
	$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LIBS) $(ZLIB_STATIC)

install install-bin: all
	@set -ex;\
	for i in $(TARGETS_REAL); do \
	$(MKDIR) $(DESTDIR)$(sbindir); \
	$(INSTALL) $(STRIP) $$i $(DESTDIR)$(sbindir); done;
	set -e; \
	for i in $(srcdir)/insmod_ksymoops_clean $(srcdir)/kernelversion; do \
	$(MKDIR) $(DESTDIR)$(sbindir); \
	$(INSTALL) $$i $(DESTDIR)$(sbindir); done;
	set -e; \
	for i in $(COMB); do \
	ln -sf insmod $(DESTDIR)$(sbindir)/$$i; \
	(test "$(insmod_static)" = yes && \
		ln -sf insmod.static $(DESTDIR)$(sbindir)/$$i.static) || true; \
	done

clean:
	rm -f *.o $(PROGS) *.static libmodutils.a

realclean: clean
	rm -f .depend

distclean: realclean
	rm -f Makefile

dep depend .depend: $(addsuffix .c, $(PROGS))
	$(CC) -M $(CFLAGS) $(DEFSNOARCH) $(DEFS) $^ > .depend

ifeq (.depend,$(wildcard .depend))
include .depend
endif