1 | # This is completely unsupported.
|
---|
2 | #
|
---|
3 | # Uasge: make -f scripts/Makefile.IMA
|
---|
4 | #
|
---|
5 | # Fix COMBINED_COMPILE upstream (in the Kbuild) and propagate
|
---|
6 | # the changes back
|
---|
7 | srctree := $(if $(KBUILD_SRC),$(KBUILD_SRC),$(CURDIR))
|
---|
8 | objtree := $(CURDIR)
|
---|
9 | src := $(srctree)
|
---|
10 | obj := $(objtree)
|
---|
11 |
|
---|
12 | # Look for make include files relative to root of kernel src
|
---|
13 | MAKEFLAGS += --include-dir=$(srctree)
|
---|
14 |
|
---|
15 | default: busybox
|
---|
16 |
|
---|
17 | include .config
|
---|
18 |
|
---|
19 | # Cross compiling and selecting different set of gcc/bin-utils
|
---|
20 | ifeq ($(CROSS_COMPILE),)
|
---|
21 | CROSS_COMPILE := $(subst ",,$(CONFIG_CROSS_COMPILER_PREFIX))
|
---|
22 | endif
|
---|
23 |
|
---|
24 | ifneq ($(CROSS_COMPILE),)
|
---|
25 | SUBARCH := $(shell echo $(CROSS_COMPILE) | cut -d- -f1)
|
---|
26 | else
|
---|
27 | SUBARCH := $(shell uname -m)
|
---|
28 | endif
|
---|
29 | SUBARCH := $(shell echo $(SUBARCH) | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
|
---|
30 | -e s/arm.*/arm/ -e s/sa110/arm/ \
|
---|
31 | -e s/s390x/s390/ -e s/parisc64/parisc/ \
|
---|
32 | -e s/ppc.*/powerpc/ -e s/mips.*/mips/ )
|
---|
33 | ARCH ?= $(SUBARCH)
|
---|
34 |
|
---|
35 | ifndef HOSTCC
|
---|
36 | HOSTCC = cc
|
---|
37 | endif
|
---|
38 | AS = $(CROSS_COMPILE)as
|
---|
39 | CC = $(CROSS_COMPILE)gcc
|
---|
40 | LD = $(CC) -nostdlib
|
---|
41 | CPP = $(CC) -E
|
---|
42 | AR = $(CROSS_COMPILE)ar
|
---|
43 | NM = $(CROSS_COMPILE)nm
|
---|
44 | STRIP = $(CROSS_COMPILE)strip
|
---|
45 | OBJCOPY = $(CROSS_COMPILE)objcopy
|
---|
46 | OBJDUMP = $(CROSS_COMPILE)objdump
|
---|
47 |
|
---|
48 | CFLAGS := $(CFLAGS)
|
---|
49 | CPPFLAGS += -D"KBUILD_STR(s)=\#s" #-Q
|
---|
50 |
|
---|
51 | # We need some generic definitions
|
---|
52 | include $(srctree)/scripts/Kbuild.include
|
---|
53 |
|
---|
54 | include Makefile.flags
|
---|
55 |
|
---|
56 | -include $(srctree)/arch/$(ARCH)/Makefile
|
---|
57 | ifdef CONFIG_FEATURE_COMPRESS_USAGE
|
---|
58 | usage_stuff = include/usage_compressed.h
|
---|
59 | endif
|
---|
60 |
|
---|
61 | ifndef BB_VER
|
---|
62 | BB_VER:=""
|
---|
63 | endif
|
---|
64 |
|
---|
65 | WHOLE_PROGRAM:=$(call cc-option,-fwhole-program,)
|
---|
66 |
|
---|
67 | # pull in the config stuff
|
---|
68 | lib-all-y := applets/applets.o
|
---|
69 | lib-y:=
|
---|
70 | include procps/Kbuild
|
---|
71 | lib-all-y += $(patsubst %,procps/%,$(sort $(lib-y)))
|
---|
72 | lib-y:=
|
---|
73 | include networking/Kbuild
|
---|
74 | lib-all-y += $(patsubst %,networking/%,$(sort $(lib-y)))
|
---|
75 | lib-y:=
|
---|
76 | include networking/udhcp/Kbuild
|
---|
77 | lib-all-y += $(patsubst %,networking/udhcp/%,$(sort $(lib-y)))
|
---|
78 | lib-y:=
|
---|
79 | include networking/libiproute/Kbuild
|
---|
80 | lib-all-y += $(patsubst %,networking/libiproute/%,$(sort $(lib-y)))
|
---|
81 | lib-y:=
|
---|
82 | include loginutils/Kbuild
|
---|
83 | lib-all-y += $(patsubst %,loginutils/%,$(sort $(lib-y)))
|
---|
84 | lib-y:=
|
---|
85 | include archival/Kbuild
|
---|
86 | lib-all-y += $(patsubst %,archival/%,$(sort $(lib-y)))
|
---|
87 | lib-y:=
|
---|
88 | include archival/libarchive/Kbuild
|
---|
89 | lib-all-y += $(patsubst %,archival/libarchive/%,$(sort $(lib-y)))
|
---|
90 | lib-y:=
|
---|
91 | include applets/Kbuild
|
---|
92 | lib-all-y += $(patsubst %,applets/%,$(sort $(lib-y)))
|
---|
93 | lib-y:=
|
---|
94 | include e2fsprogs/Kbuild
|
---|
95 | lib-all-y += $(patsubst %,e2fsprogs/%,$(sort $(lib-y)))
|
---|
96 | lib-y:=
|
---|
97 | #include e2fsprogs/old_e2fsprogs/Kbuild
|
---|
98 | #lib-all-y += $(patsubst %,e2fsprogs/old_e2fsprogs/%,$(sort $(lib-y)))
|
---|
99 | #lib-y:=
|
---|
100 | #include e2fsprogs/old_e2fsprogs/ext2fs/Kbuild
|
---|
101 | #lib-all-y += $(patsubst %,e2fsprogs/old_e2fsprogs/ext2fs/%,$(sort $(lib-y)))
|
---|
102 | #lib-y:=
|
---|
103 | #include e2fsprogs/old_e2fsprogs/blkid/Kbuild
|
---|
104 | #lib-all-y += $(patsubst %,e2fsprogs/old_e2fsprogs/blkid/%,$(sort $(lib-y)))
|
---|
105 | #lib-y:=
|
---|
106 | #include e2fsprogs/old_e2fsprogs/uuid/Kbuild
|
---|
107 | #lib-all-y += $(patsubst %,e2fsprogs/old_e2fsprogs/uuid/%,$(sort $(lib-y)))
|
---|
108 | #lib-y:=
|
---|
109 | #include e2fsprogs/old_e2fsprogs/e2p/Kbuild
|
---|
110 | #lib-all-y += $(patsubst %,e2fsprogs/old_e2fsprogs/e2p/%,$(sort $(lib-y)))
|
---|
111 | #lib-y:=
|
---|
112 | include debianutils/Kbuild
|
---|
113 | lib-all-y += $(patsubst %,debianutils/%,$(sort $(lib-y)))
|
---|
114 | lib-y:=
|
---|
115 | include runit/Kbuild
|
---|
116 | lib-all-y += $(patsubst %,runit/%,$(sort $(lib-y)))
|
---|
117 | lib-y:=
|
---|
118 | include modutils/Kbuild
|
---|
119 | lib-all-y += $(patsubst %,modutils/%,$(sort $(lib-y)))
|
---|
120 | lib-y:=
|
---|
121 | include miscutils/Kbuild
|
---|
122 | lib-all-y += $(patsubst %,miscutils/%,$(sort $(lib-y)))
|
---|
123 | lib-y:=
|
---|
124 | include coreutils/libcoreutils/Kbuild
|
---|
125 | lib-all-y += $(patsubst %,coreutils/libcoreutils/%,$(sort $(lib-y)))
|
---|
126 | lib-y:=
|
---|
127 | include coreutils/Kbuild
|
---|
128 | lib-all-y += $(patsubst %,coreutils/%,$(sort $(lib-y)))
|
---|
129 | lib-y:=
|
---|
130 | include sysklogd/Kbuild
|
---|
131 | lib-all-y += $(patsubst %,sysklogd/%,$(sort $(lib-y)))
|
---|
132 | lib-y:=
|
---|
133 | include shell/Kbuild
|
---|
134 | lib-all-y += $(patsubst %,shell/%,$(sort $(lib-y)))
|
---|
135 | lib-y:=
|
---|
136 | include console-tools/Kbuild
|
---|
137 | lib-all-y += $(patsubst %,console-tools/%,$(sort $(lib-y)))
|
---|
138 | lib-y:=
|
---|
139 | include findutils/Kbuild
|
---|
140 | lib-all-y += $(patsubst %,findutils/%,$(sort $(lib-y)))
|
---|
141 | lib-y:=
|
---|
142 | include util-linux/Kbuild
|
---|
143 | lib-all-y += $(patsubst %,util-linux/%,$(sort $(lib-y)))
|
---|
144 | lib-y:=
|
---|
145 | include util-linux/volume_id/Kbuild
|
---|
146 | lib-all-y += $(patsubst %,util-linux/volume_id/%,$(sort $(lib-y)))
|
---|
147 | lib-y:=
|
---|
148 | include init/Kbuild
|
---|
149 | lib-all-y += $(patsubst %,init/%,$(sort $(lib-y)))
|
---|
150 | lib-y:=
|
---|
151 | include libpwdgrp/Kbuild
|
---|
152 | lib-all-y += $(patsubst %,libpwdgrp/%,$(sort $(lib-y)))
|
---|
153 | lib-y:=
|
---|
154 | include editors/Kbuild
|
---|
155 | lib-all-y += $(patsubst %,editors/%,$(sort $(lib-y)))
|
---|
156 | lib-y:=
|
---|
157 | include printutils/Kbuild
|
---|
158 | lib-all-y += $(patsubst %,printutils/%,$(sort $(lib-y)))
|
---|
159 | lib-y:=
|
---|
160 | include selinux/Kbuild
|
---|
161 | lib-all-y += $(patsubst %,selinux/%,$(sort $(lib-y)))
|
---|
162 | lib-y:=
|
---|
163 | include scripts/Kbuild
|
---|
164 | lib-all-y += $(patsubst %,scripts/%,$(sort $(lib-y)))
|
---|
165 | lib-y:=
|
---|
166 | include libbb/Kbuild
|
---|
167 | lib-all-y += $(patsubst %,libbb/%,$(sort $(lib-y)))
|
---|
168 | lib-y:=
|
---|
169 |
|
---|
170 | comma:=,
|
---|
171 | busybox_unstripped.o: $(usage_stuff) include/applet_tables.h include/autoconf.h
|
---|
172 | $(CC) $(CPPFLAGS) $(CFLAGS) $(EXTRA_CFLAGS) \
|
---|
173 | $(patsubst %,-Wl$(comma)%,$(LDFLAGS) $(EXTRA_LDFLAGS)) \
|
---|
174 | -DGCC_COMBINE=1 \
|
---|
175 | --combine $(WHOLE_PROGRAM) \
|
---|
176 | -funit-at-a-time -Wno-error -std=gnu99 \
|
---|
177 | -c -o busybox_unstripped.o \
|
---|
178 | $(lib-all-y:.o=.c)
|
---|
179 |
|
---|
180 | busybox: busybox_unstripped.o
|
---|
181 | $(srctree)/scripts/trylink \
|
---|
182 | busybox_unstripped \
|
---|
183 | "$(CC) $(CFLAGS_busybox)" \
|
---|
184 | "$(CFLAGS)" \
|
---|
185 | "$(LDFLAGS)" \
|
---|
186 | "busybox_unstripped.o" \
|
---|
187 | "" \
|
---|
188 | "crypt m"
|
---|
189 | cp -f $(@)_unstripped $@
|
---|
190 | -$(STRIP) -s -R .note -R .comment -R .version $@
|
---|
191 |
|
---|
192 | # If .config is newer than include/autoconf.h, someone tinkered
|
---|
193 | # with it and forgot to run make oldconfig.
|
---|
194 | include/autoconf.h: .config
|
---|
195 | $(MAKE) -f $(srctree)/Makefile silentoldconfig
|
---|
196 |
|
---|
197 | applets/usage: include/autoconf.h
|
---|
198 | $(HOSTCC) -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -I$(srctree)/include -o applets/usage applets/usage.c
|
---|
199 |
|
---|
200 | applets/applet_tables: include/autoconf.h
|
---|
201 | $(HOSTCC) -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -I$(srctree)/include -o applets/applet_tables applets/applet_tables.c
|
---|
202 |
|
---|
203 | include/usage_compressed.h: include/usage.h applets/usage
|
---|
204 | $(srctree)/applets/usage_compressed include/usage_compressed.h applets
|
---|
205 |
|
---|
206 | include/applet_tables.h: include/applets.h
|
---|
207 | applets/applet_tables include/applet_tables.h
|
---|