diff options
author | aldot <aldot@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2006-01-15 14:04:57 +0000 |
---|---|---|
committer | aldot <aldot@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2006-01-15 14:04:57 +0000 |
commit | a532478c9fef863dea125eb66441f715cf5d5c38 (patch) | |
tree | c0aaacfeb97a9bc74e73f8ff36ecbf1fd173808b | |
parent | 0c482ced822cfada034ff19b3e1b81f0ef6a6cf8 (diff) | |
download | busybox-w32-a532478c9fef863dea125eb66441f715cf5d5c38.tar.gz busybox-w32-a532478c9fef863dea125eb66441f715cf5d5c38.tar.bz2 busybox-w32-a532478c9fef863dea125eb66441f715cf5d5c38.zip |
- shared libbusybox.
- IMA compilation option (aka IPO, IPA,..)
Please holler if i broke something..
git-svn-id: svn://busybox.net/trunk/busybox@13346 69ca8d6d-28ef-0310-b511-8ec308f3f277
31 files changed, 514 insertions, 171 deletions
@@ -185,6 +185,7 @@ randconfig: scripts/config/conf | |||
185 | allyesconfig: scripts/config/conf | 185 | allyesconfig: scripts/config/conf |
186 | @./scripts/config/conf -y $(CONFIG_CONFIG_IN) | 186 | @./scripts/config/conf -y $(CONFIG_CONFIG_IN) |
187 | sed -i -r -e "s/^(CONFIG_DEBUG|USING_CROSS_COMPILER|CONFIG_STATIC|CONFIG_SELINUX|CONFIG_FEATURE_DEVFS).*/# \1 is not set/" .config | 187 | sed -i -r -e "s/^(CONFIG_DEBUG|USING_CROSS_COMPILER|CONFIG_STATIC|CONFIG_SELINUX|CONFIG_FEATURE_DEVFS).*/# \1 is not set/" .config |
188 | echo "CONFIG_FEATURE_SHARED_BUSYBOX=y" >> .config | ||
188 | @./scripts/config/conf -o $(CONFIG_CONFIG_IN) | 189 | @./scripts/config/conf -o $(CONFIG_CONFIG_IN) |
189 | 190 | ||
190 | allnoconfig: scripts/config/conf | 191 | allnoconfig: scripts/config/conf |
@@ -207,19 +208,102 @@ all: busybox busybox.links doc | |||
207 | # In this section, we need .config | 208 | # In this section, we need .config |
208 | -include $(top_builddir)/.config.cmd | 209 | -include $(top_builddir)/.config.cmd |
209 | include $(patsubst %,%/Makefile.in, $(SRC_DIRS)) | 210 | include $(patsubst %,%/Makefile.in, $(SRC_DIRS)) |
210 | -include $(top_builddir)/.depend | ||
211 | 211 | ||
212 | endif # ifneq ($(strip $(HAVE_DOT_CONFIG)),y) | 212 | endif # ifneq ($(strip $(HAVE_DOT_CONFIG)),y) |
213 | 213 | ||
214 | busybox: .depend $(libraries-y) | 214 | -include $(top_builddir)/.config |
215 | $(CC) $(EXTRA_CFLAGS) $(LDFLAGS) -o $@ -Wl,--start-group $(libraries-y) $(LIBRARIES) -Wl,--end-group | 215 | -include $(top_builddir)/.depend |
216 | |||
217 | |||
218 | ifeq ($(strip $(CONFIG_BUILD_LIBBUSYBOX)),y) | ||
219 | |||
220 | LD_LIBBUSYBOX:=libbusybox.so | ||
221 | LIBBUSYBOX_SONAME:=$(LD_LIBBUSYBOX).$(MAJOR_VERSION).$(MINOR_VERSION).$(SUBLEVEL_VERSION) | ||
222 | DO_INSTALL_LIBS:=$(LD_LIBBUSYBOX) \ | ||
223 | $(LD_LIBBUSYBOX).$(MAJOR_VERSION) \ | ||
224 | $(LD_LIBBUSYBOX).$(MAJOR_VERSION).$(MINOR_VERSION) | ||
225 | |||
226 | ifeq ($(CONFIG_BUILD_AT_ONCE),y) | ||
227 | # Which parts of the internal libs are requested? | ||
228 | # Per default we only want what was actually selected. | ||
229 | ifeq ($(CONFIG_FEATURE_FULL_LIBBUSYBOX),y) | ||
230 | LIBRARY_DEFINE:=$(LIBRARY_DEFINE-a) | ||
231 | LIBRARY_SRC :=$(LIBRARY_SRC-a) | ||
232 | $(LIBBUSYBOX_SONAME): $(LIBRARY_SRC) | ||
233 | else | ||
234 | LIBRARY_DEFINE:=$(LIBRARY_DEFINE-y) | ||
235 | LIBRARY_SRC :=$(LIBRARY_SRC-y) | ||
236 | $(LIBBUSYBOX_SONAME): $(LIBRARY_SRC) | ||
237 | endif | ||
238 | else # CONFIG_BUILD_AT_ONCE | ||
239 | libbusybox-obj:=archival/libunarchive/libunarchive.a \ | ||
240 | networking/libiproute/libiproute.a \ | ||
241 | libpwdgrp/libpwdgrp.a \ | ||
242 | coreutils/libcoreutils/libcoreutils.a \ | ||
243 | libbb/libbb.a | ||
244 | libbusybox-obj:=$(patsubst %,$(top_builddir)/%,$(libbusybox-obj)) | ||
245 | |||
246 | $(LIBBUSYBOX_SONAME): $(libbusybox-obj) | ||
247 | |||
248 | LIBRARY_DEFINE:= | ||
249 | LIBRARY_SRC := | ||
250 | endif # CONFIG_BUILD_AT_ONCE | ||
251 | |||
252 | |||
253 | $(LIBBUSYBOX_SONAME): | ||
254 | ifndef MAJOR_VERSION | ||
255 | $(error MAJOR_VERSION needed for $@ is not defined) | ||
256 | endif | ||
257 | $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(LDFLAGS) -shared \ | ||
258 | $(CFLAGS_PIC) \ | ||
259 | -Wl,-soname=$(LD_LIBBUSYBOX).$(MAJOR_VERSION) \ | ||
260 | -Wl,--enable-new-dtags -Wl,--reduce-memory-overheads \ | ||
261 | -Wl,-z,combreloc -Wl,-shared -Wl,--as-needed -Wl,--warn-shared-textrel \ | ||
262 | -o $(@) \ | ||
263 | -Wl,--start-group -Wl,--whole-archive \ | ||
264 | $(LIBRARY_DEFINE) $(^) \ | ||
265 | -Wl,--no-whole-archive -Wl,--end-group | ||
266 | $(RM_F) $(DO_INSTALL_LIBS) | ||
267 | for i in $(DO_INSTALL_LIBS); do $(LN_S) -v $(@) $$i ; done | ||
268 | $(STRIPCMD) $@ | ||
269 | |||
270 | endif # ifeq ($(strip $(CONFIG_BUILD_LIBBUSYBOX)),y) | ||
271 | |||
272 | |||
273 | ifeq ($(strip $(CONFIG_FEATURE_SHARED_BUSYBOX)),y) | ||
274 | libraries-y:=$(filter-out $(libbusybox-obj),$(libraries-y)) | ||
275 | LDBUSYBOX:=-L$(top_builddir) -lbusybox | ||
276 | BUSYBOX_SRC := | ||
277 | BUSYBOX_DEFINE:= | ||
278 | else | ||
279 | #LDBUSYBOX:= | ||
280 | BUSYBOX_SRC := $(LIBRARY_SRC) | ||
281 | BUSYBOX_DEFINE:= $(LIBRARY_DEFINE) | ||
282 | endif # ifeq ($(strip $(CONFIG_FEATURE_SHARED_BUSYBOX)),y) | ||
283 | |||
284 | |||
285 | ifeq ($(strip $(CONFIG_BUILD_AT_ONCE)),y) | ||
286 | libraries-y:= | ||
287 | else | ||
288 | BUSYBOX_SRC:= | ||
289 | BUSYBOX_DEFINE:= | ||
290 | APPLET_SRC-y:= | ||
291 | APPLETS_DEFINE-y:= | ||
292 | endif | ||
293 | |||
294 | busybox: .depend $(LIBBUSYBOX_SONAME) $(BUSYBOX_SRC) $(libraries-y) | ||
295 | $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(PROG_CFLAGS) $(LDFLAGS) \ | ||
296 | -o $@ -Wl,--start-group \ | ||
297 | $(APPLETS_DEFINE-y) $(APPLET_SRC-y) $(BUSYBOX_DEFINE) $(BUSYBOX_SRC) $(libraries-y) $(LDBUSYBOX) $(LIBRARIES) \ | ||
298 | -Wl,--end-group | ||
216 | $(STRIPCMD) $@ | 299 | $(STRIPCMD) $@ |
217 | 300 | ||
218 | busybox.links: $(top_srcdir)/applets/busybox.mkll include/bb_config.h $(top_srcdir)/include/applets.h | 301 | busybox.links: $(top_srcdir)/applets/busybox.mkll include/bb_config.h $(top_srcdir)/include/applets.h |
219 | - $(SHELL) $^ >$@ | 302 | - $(SHELL) $^ >$@ |
220 | 303 | ||
221 | install: $(top_srcdir)/applets/install.sh busybox busybox.links | 304 | install: $(top_srcdir)/applets/install.sh busybox busybox.links |
222 | $(SHELL) $< $(PREFIX) $(INSTALL_OPTS) | 305 | DO_INSTALL_LIBS="$(strip $(LIBBUSYBOX_SONAME) $(DO_INSTALL_LIBS))" \ |
306 | $(SHELL) $< $(PREFIX) $(INSTALL_OPTS) | ||
223 | ifeq ($(strip $(CONFIG_FEATURE_SUID)),y) | 307 | ifeq ($(strip $(CONFIG_FEATURE_SUID)),y) |
224 | @echo | 308 | @echo |
225 | @echo | 309 | @echo |
@@ -232,8 +316,13 @@ ifeq ($(strip $(CONFIG_FEATURE_SUID)),y) | |||
232 | endif | 316 | endif |
233 | 317 | ||
234 | uninstall: busybox.links | 318 | uninstall: busybox.links |
235 | rm -f $(PREFIX)/bin/busybox | 319 | $(RM_F) $(PREFIX)/bin/busybox |
236 | for i in `cat busybox.links` ; do rm -f $(PREFIX)$$i; done | 320 | for i in `cat busybox.links` ; do $(RM_F) $(PREFIX)$$i; done |
321 | ifneq ($(strip $(DO_INSTALL_LIBS)),n) | ||
322 | for i in $(LIBBUSYBOX_SONAME) $(DO_INSTALL_LIBS); do \ | ||
323 | $(RM_F) $(PREFIX)$$i; \ | ||
324 | done | ||
325 | endif | ||
237 | 326 | ||
238 | # see if we are in verbose mode | 327 | # see if we are in verbose mode |
239 | KBUILD_VERBOSE := | 328 | KBUILD_VERBOSE := |
@@ -244,13 +333,14 @@ ifdef V | |||
244 | endif | 333 | endif |
245 | ifneq ($(strip $(KBUILD_VERBOSE)),) | 334 | ifneq ($(strip $(KBUILD_VERBOSE)),) |
246 | CHECK_VERBOSE := -v | 335 | CHECK_VERBOSE := -v |
336 | # ARFLAGS+=v | ||
247 | endif | 337 | endif |
248 | check test: busybox | 338 | check test: busybox |
249 | bindir=$(top_builddir) srcdir=$(top_srcdir)/testsuite \ | 339 | bindir=$(top_builddir) srcdir=$(top_srcdir)/testsuite \ |
250 | $(top_srcdir)/testsuite/runtest $(CHECK_VERBOSE) | 340 | $(top_srcdir)/testsuite/runtest $(CHECK_VERBOSE) |
251 | 341 | ||
252 | sizes: | 342 | sizes: |
253 | -rm -f busybox | 343 | -$(RM_F) busybox |
254 | $(MAKE) top_srcdir=$(top_srcdir) top_builddir=$(top_builddir) \ | 344 | $(MAKE) top_srcdir=$(top_srcdir) top_builddir=$(top_builddir) \ |
255 | -f $(top_srcdir)/Makefile STRIPCMD=/bin/true | 345 | -f $(top_srcdir)/Makefile STRIPCMD=/bin/true |
256 | $(NM) --size-sort busybox | 346 | $(NM) --size-sort busybox |
@@ -278,14 +368,14 @@ docs/BusyBox.1: docs/busybox.pod | |||
278 | 368 | ||
279 | docs/BusyBox.html: docs/busybox.net/BusyBox.html | 369 | docs/BusyBox.html: docs/busybox.net/BusyBox.html |
280 | - mkdir -p docs | 370 | - mkdir -p docs |
281 | -@ rm -f docs/BusyBox.html | 371 | -@ $(RM_F) docs/BusyBox.html |
282 | -@ cp docs/busybox.net/BusyBox.html docs/BusyBox.html | 372 | -@ cp docs/busybox.net/BusyBox.html docs/BusyBox.html |
283 | 373 | ||
284 | docs/busybox.net/BusyBox.html: docs/busybox.pod | 374 | docs/busybox.net/BusyBox.html: docs/busybox.pod |
285 | -@ mkdir -p docs/busybox.net | 375 | -@ mkdir -p docs/busybox.net |
286 | - pod2html --noindex $< > \ | 376 | - pod2html --noindex $< > \ |
287 | docs/busybox.net/BusyBox.html | 377 | docs/busybox.net/BusyBox.html |
288 | -@ rm -f pod2htm* | 378 | -@ $(RM_F) pod2htm* |
289 | 379 | ||
290 | # The nifty new buildsystem stuff | 380 | # The nifty new buildsystem stuff |
291 | scripts/bb_mkdep: $(top_srcdir)/scripts/bb_mkdep.c | 381 | scripts/bb_mkdep: $(top_srcdir)/scripts/bb_mkdep.c |
@@ -302,7 +392,7 @@ endif | |||
302 | 392 | ||
303 | depend dep: .depend | 393 | depend dep: .depend |
304 | .depend: scripts/bb_mkdep $(DEP_INCLUDES) | 394 | .depend: scripts/bb_mkdep $(DEP_INCLUDES) |
305 | @rm -f .depend | 395 | @$(RM_F) .depend |
306 | @mkdir -p include/config | 396 | @mkdir -p include/config |
307 | scripts/bb_mkdep -c include/config.h -c include/bb_config.h \ | 397 | scripts/bb_mkdep -c include/config.h -c include/bb_config.h \ |
308 | -I $(top_srcdir)/include $(top_srcdir) > $@.tmp | 398 | -I $(top_srcdir)/include $(top_srcdir) > $@.tmp |
@@ -323,22 +413,24 @@ include/bb_config.h: include/config.h | |||
323 | 413 | ||
324 | clean: | 414 | clean: |
325 | - $(MAKE) -C scripts/config $@ | 415 | - $(MAKE) -C scripts/config $@ |
326 | - rm -f docs/busybox.dvi docs/busybox.ps \ | 416 | - $(RM_F) docs/busybox.dvi docs/busybox.ps \ |
327 | docs/busybox.pod docs/busybox.net/busybox.html \ | 417 | docs/busybox.pod docs/busybox.net/busybox.html \ |
328 | docs/busybox pod2htm* *.gdb *.elf *~ core .*config.log \ | 418 | docs/busybox pod2htm* *.gdb *.elf *~ core .*config.log \ |
329 | docs/BusyBox.txt docs/BusyBox.1 docs/BusyBox.html \ | 419 | docs/BusyBox.txt docs/BusyBox.1 docs/BusyBox.html \ |
330 | docs/busybox.net/BusyBox.html busybox.links libbb/loop.h \ | 420 | docs/busybox.net/BusyBox.html busybox.links libbb/loop.h \ |
421 | $(DO_INSTALL_LIBS) $(LIBBUSYBOX_SONAME) \ | ||
331 | .config.old busybox | 422 | .config.old busybox |
332 | - rm -rf _install testsuite/links | 423 | - rm -rf _install testsuite/links |
333 | - find . -name .\*.flags -exec rm -f {} \; | 424 | - find . -name .\*.flags -exec $(RM_F) {} \; |
334 | - find . -name \*.o -exec rm -f {} \; | 425 | - find . -name \*.o -exec $(RM_F) {} \; |
335 | - find . -name \*.a -exec rm -f {} \; | 426 | - find . -name \*.a -exec $(RM_F) {} \; |
427 | - find . -name \*.so -exec $(RM_F) {} \; | ||
336 | 428 | ||
337 | distclean: clean | 429 | distclean: clean |
338 | - rm -f scripts/bb_mkdep | 430 | - $(RM_F) scripts/bb_mkdep |
339 | - rm -rf include/config include/config.h include/bb_config.h include/bbconfigopts.h | 431 | - rm -rf include/config include/config.h include/bb_config.h include/bbconfigopts.h |
340 | - find . -name .depend -exec rm -f {} \; | 432 | - find . -name .depend -exec $(RM_F) {} \; |
341 | rm -f .config .config.old .config.cmd | 433 | $(RM_F) .config .config.old .config.cmd |
342 | 434 | ||
343 | release: distclean #doc | 435 | release: distclean #doc |
344 | cd ..; \ | 436 | cd ..; \ |
@@ -353,7 +445,7 @@ release: distclean #doc | |||
353 | find $(PROG)-$(VERSION)/ -type f \ | 445 | find $(PROG)-$(VERSION)/ -type f \ |
354 | -name .\#* \ | 446 | -name .\#* \ |
355 | -print \ | 447 | -print \ |
356 | -exec rm -f {} \; ; \ | 448 | -exec $(RM_F) {} \; ; \ |
357 | \ | 449 | \ |
358 | tar -cvzf $(PROG)-$(VERSION).tar.gz $(PROG)-$(VERSION)/; | 450 | tar -cvzf $(PROG)-$(VERSION).tar.gz $(PROG)-$(VERSION)/; |
359 | 451 | ||
@@ -81,7 +81,8 @@ CFLAGS_EXTRA=$(subst ",, $(strip $(EXTRA_CFLAGS_OPTIONS))) | |||
81 | #GCCINCDIR:=$(shell gcc -print-search-dirs | sed -ne "s/install: \(.*\)/\1include/gp") | 81 | #GCCINCDIR:=$(shell gcc -print-search-dirs | sed -ne "s/install: \(.*\)/\1include/gp") |
82 | 82 | ||
83 | WARNINGS=-Wall -Wstrict-prototypes -Wshadow | 83 | WARNINGS=-Wall -Wstrict-prototypes -Wshadow |
84 | CFLAGS=-I$(top_builddir)/include -I$(top_srcdir)/include -I$(srcdir) | 84 | CFLAGS+=-I$(top_builddir)/include -I$(top_srcdir)/include -I$(srcdir) |
85 | |||
85 | ARFLAGS=cru | 86 | ARFLAGS=cru |
86 | 87 | ||
87 | 88 | ||
@@ -125,6 +126,8 @@ endif | |||
125 | 126 | ||
126 | CFLAGS+=$(call check_gcc,-funsigned-char,) | 127 | CFLAGS+=$(call check_gcc,-funsigned-char,) |
127 | 128 | ||
129 | CFLAGS+=$(call check_gcc,-mmax-stack-frame=256,) | ||
130 | |||
128 | #-------------------------------------------------------- | 131 | #-------------------------------------------------------- |
129 | # Arch specific compiler optimization stuff should go here. | 132 | # Arch specific compiler optimization stuff should go here. |
130 | # Unless you want to override the defaults, do not set anything | 133 | # Unless you want to override the defaults, do not set anything |
@@ -133,15 +136,38 @@ CFLAGS+=$(call check_gcc,-funsigned-char,) | |||
133 | # use '-Os' optimization if available, else use -O2 | 136 | # use '-Os' optimization if available, else use -O2 |
134 | OPTIMIZATION:=$(call check_gcc,-Os,-O2) | 137 | OPTIMIZATION:=$(call check_gcc,-Os,-O2) |
135 | 138 | ||
139 | ifeq ($(CONFIG_BUILD_AT_ONCE),y) | ||
140 | # gcc 2.95 exits with 0 for "unrecognized option" | ||
141 | ifeq ($(strip $(shell [ $(CC_MAJOR) -ge 3 ] ; echo $$?)),0) | ||
142 | OPTIMIZATION+=$(call check_gcc,-combine,) | ||
143 | endif | ||
144 | OPTIMIZATION+=$(call check_gcc,-funit-at-a-time,) | ||
145 | PROG_CFLAGS+=$(call check_gcc,-fwhole-program,) | ||
146 | endif # CONFIG_BUILD_AT_ONCE | ||
147 | |||
136 | # Some nice architecture specific optimizations | 148 | # Some nice architecture specific optimizations |
137 | ifeq ($(strip $(TARGET_ARCH)),arm) | 149 | ifeq ($(strip $(TARGET_ARCH)),arm) |
138 | OPTIMIZATION+=-fstrict-aliasing | 150 | OPTIMIZATION+=-fstrict-aliasing |
151 | OPTIMIZATION+=$(call check_gcc,-msingle-pic-base,) | ||
139 | endif | 152 | endif |
140 | ifeq ($(strip $(TARGET_ARCH)),i386) | 153 | ifeq ($(strip $(TARGET_ARCH)),i386) |
141 | OPTIMIZATION+=$(call check_gcc,-march=i386,) | 154 | OPTIMIZATION+=$(call check_gcc,-march=i386,) |
155 | # gcc-4.0 and older seem to suffer from these | ||
156 | ifneq ($(strip $(shell [ $(CC_MAJOR) -ge 4 -a $(CC_MINOR) -ge 1 ] ; echo $$?)),0) | ||
142 | OPTIMIZATION+=$(call check_gcc,-mpreferred-stack-boundary=2,) | 157 | OPTIMIZATION+=$(call check_gcc,-mpreferred-stack-boundary=2,) |
143 | OPTIMIZATION+=$(call check_gcc,-falign-functions=0 -falign-jumps=0 -falign-loops=0,\ | 158 | OPTIMIZATION+=$(call check_gcc,-falign-functions=0 -falign-jumps=0 -falign-loops=0,\ |
144 | -malign-functions=0 -malign-jumps=0 -malign-loops=0) | 159 | -malign-functions=0 -malign-jumps=0 -malign-loops=0) |
160 | endif # gcc-4.0 and older | ||
161 | |||
162 | # gcc-4.1 and beyond seem to benefit from these | ||
163 | ifeq ($(strip $(shell [ $(CC_MAJOR) -ge 4 -a $(CC_MINOR) -ge 1 ] ; echo $$?)),0) | ||
164 | # turn off flags which hurt -Os | ||
165 | OPTIMIZATION+=$(call check_gcc,-fno-tree-loop-optimize,) | ||
166 | OPTIMIZATION+=$(call check_gcc,-fno-tree-dominator-opts,) | ||
167 | OPTIMIZATION+=$(call check_gcc,-fno-strength-reduce,) | ||
168 | |||
169 | OPTIMIZATION+=$(call check_gcc,-fno-branch-count-reg,) | ||
170 | endif # gcc-4.1 and beyond | ||
145 | endif | 171 | endif |
146 | OPTIMIZATIONS:=$(OPTIMIZATION) -fomit-frame-pointer | 172 | OPTIMIZATIONS:=$(OPTIMIZATION) -fomit-frame-pointer |
147 | 173 | ||
@@ -173,11 +199,17 @@ ifeq ($(strip $(CONFIG_DEBUG)),y) | |||
173 | STRIPCMD:=/bin/true -Not_stripping_since_we_are_debugging | 199 | STRIPCMD:=/bin/true -Not_stripping_since_we_are_debugging |
174 | else | 200 | else |
175 | CFLAGS+=$(WARNINGS) $(OPTIMIZATIONS) -D_GNU_SOURCE -DNDEBUG | 201 | CFLAGS+=$(WARNINGS) $(OPTIMIZATIONS) -D_GNU_SOURCE -DNDEBUG |
176 | LDFLAGS += -Wl,-warn-common | 202 | LDFLAGS += -Wl,-warn-common -Wl,--sort-common |
177 | STRIPCMD:=$(STRIP) -s --remove-section=.note --remove-section=.comment | 203 | STRIPCMD:=$(STRIP) -s --remove-section=.note --remove-section=.comment |
178 | endif | 204 | endif |
179 | ifeq ($(strip $(CONFIG_STATIC)),y) | 205 | ifeq ($(strip $(CONFIG_STATIC)),y) |
180 | LDFLAGS += --static | 206 | LDFLAGS += --static |
207 | #else | ||
208 | # LIBRARIES += -ldl | ||
209 | endif | ||
210 | |||
211 | ifeq ($(strip $(CONFIG_BUILD_LIBBUSYBOX)),y) | ||
212 | CFLAGS_PIC:= -fPIC #-DPIC | ||
181 | endif | 213 | endif |
182 | 214 | ||
183 | ifeq ($(strip $(CONFIG_SELINUX)),y) | 215 | ifeq ($(strip $(CONFIG_SELINUX)),y) |
diff --git a/applets/Makefile.in b/applets/Makefile.in index 511652a93..80b6da0b1 100644 --- a/applets/Makefile.in +++ b/applets/Makefile.in | |||
@@ -10,8 +10,11 @@ APPLETS_DIR:=$(top_builddir)/applets/ | |||
10 | endif | 10 | endif |
11 | srcdir=$(top_srcdir)/applets | 11 | srcdir=$(top_srcdir)/applets |
12 | 12 | ||
13 | APPLET_SRC:=applets.c busybox.c | 13 | APPLET_SRC:= $(patsubst %,$(srcdir)/%,applets.c busybox.c) |
14 | APPLET_OBJ:= $(patsubst %.c,$(APPLETS_DIR)%.o, $(APPLET_SRC)) | 14 | APPLET_OBJ:= $(patsubst $(srcdir)/%.c,$(APPLETS_DIR)%.o, $(APPLET_SRC)) |
15 | |||
16 | APPLET_SRC-y+=$(APPLET_SRC) | ||
17 | APPLET_SRC-a+=$(APPLET_SRC) | ||
15 | 18 | ||
16 | libraries-y+=$(APPLETS_DIR)$(APPLETS_AR) | 19 | libraries-y+=$(APPLETS_DIR)$(APPLETS_AR) |
17 | 20 | ||
diff --git a/applets/applets.c b/applets/applets.c index dde75f236..de1a871e0 100644 --- a/applets/applets.c +++ b/applets/applets.c | |||
@@ -265,7 +265,7 @@ static void parse_config_file(void) | |||
265 | } | 265 | } |
266 | 266 | ||
267 | /* Now get the the user/group info. */ | 267 | /* Now get the the user/group info. */ |
268 | 268 | ||
269 | s = (char *) bb_skip_whitespace(e); | 269 | s = (char *) bb_skip_whitespace(e); |
270 | 270 | ||
271 | /* Note: We require whitespace between the mode and the | 271 | /* Note: We require whitespace between the mode and the |
diff --git a/applets/busybox.c b/applets/busybox.c index 90ea2bdce..3d7a0fd0b 100644 --- a/applets/busybox.c +++ b/applets/busybox.c | |||
@@ -11,7 +11,7 @@ | |||
11 | #define setlocale(x,y) | 11 | #define setlocale(x,y) |
12 | #endif | 12 | #endif |
13 | 13 | ||
14 | const char *bb_applet_name; | 14 | const char *bb_applet_name __attribute__((externally_visible)); |
15 | 15 | ||
16 | #ifdef CONFIG_FEATURE_INSTALLER | 16 | #ifdef CONFIG_FEATURE_INSTALLER |
17 | /* | 17 | /* |
diff --git a/applets/install.sh b/applets/install.sh index 2fcd2ae6e..cc6c1fa49 100755 --- a/applets/install.sh +++ b/applets/install.sh | |||
@@ -3,8 +3,8 @@ | |||
3 | export LC_ALL=POSIX | 3 | export LC_ALL=POSIX |
4 | export LC_CTYPE=POSIX | 4 | export LC_CTYPE=POSIX |
5 | 5 | ||
6 | prefix=$1 | 6 | prefix=${1} |
7 | if [ "$prefix" = "" ]; then | 7 | if [ -z "$prefix" ]; then |
8 | echo "No installation directory, aborting." | 8 | echo "No installation directory, aborting." |
9 | exit 1; | 9 | exit 1; |
10 | fi | 10 | fi |
@@ -16,7 +16,22 @@ case "$2" in | |||
16 | *) echo "Unknown install option: $2"; exit 1;; | 16 | *) echo "Unknown install option: $2"; exit 1;; |
17 | esac | 17 | esac |
18 | 18 | ||
19 | if [ "$DO_INSTALL_LIBS" != "n" ]; then | ||
20 | # get the target dir for the libs | ||
21 | # This is an incomplete/incorrect list for now | ||
22 | case $(uname -m) in | ||
23 | x86_64|ppc64*|sparc64*|ia64*|hppa*64*) libdir=/lib64 ;; | ||
24 | *) libdir=/lib ;; | ||
25 | esac | ||
19 | 26 | ||
27 | mkdir -p $prefix/$libdir || exit 1 | ||
28 | for i in $DO_INSTALL_LIBS; do | ||
29 | rm -f $prefix/$libdir/$i || exit 1 | ||
30 | if [ -f $i ]; then | ||
31 | install -m 644 $i $prefix/$libdir/ || exit 1 | ||
32 | fi | ||
33 | done | ||
34 | fi | ||
20 | rm -f $prefix/bin/busybox || exit 1 | 35 | rm -f $prefix/bin/busybox || exit 1 |
21 | mkdir -p $prefix/bin || exit 1 | 36 | mkdir -p $prefix/bin || exit 1 |
22 | install -m 755 busybox $prefix/bin/busybox || exit 1 | 37 | install -m 755 busybox $prefix/bin/busybox || exit 1 |
diff --git a/archival/Makefile.in b/archival/Makefile.in index f4ec6794e..735b659e0 100644 --- a/archival/Makefile.in +++ b/archival/Makefile.in | |||
@@ -27,8 +27,13 @@ ARCHIVAL-$(CONFIG_UNZIP) += unzip.o | |||
27 | 27 | ||
28 | libraries-y+=$(ARCHIVAL_DIR)$(ARCHIVAL_AR) | 28 | libraries-y+=$(ARCHIVAL_DIR)$(ARCHIVAL_AR) |
29 | 29 | ||
30 | ARCHIVAL_SRC-y:=$(patsubst %.o,$(srcdir)/%.c,$(ARCHIVAL-y)) | ||
31 | ARCHIVAL_SRC-a:=$(wildcard $(srcdir)/*.c) | ||
32 | APPLET_SRC-y+=$(ARCHIVAL_SRC-y) | ||
33 | APPLET_SRC-a+=$(ARCHIVAL_SRC-a) | ||
34 | |||
30 | $(ARCHIVAL_DIR)$(ARCHIVAL_AR): $(patsubst %,$(ARCHIVAL_DIR)%, $(ARCHIVAL-y)) | 35 | $(ARCHIVAL_DIR)$(ARCHIVAL_AR): $(patsubst %,$(ARCHIVAL_DIR)%, $(ARCHIVAL-y)) |
31 | $(AR) $(ARFLAGS) $@ $(patsubst %,$(ARCHIVAL_DIR)%, $(ARCHIVAL-y)) | 36 | $(AR) $(ARFLAGS) $@ $(^) |
32 | 37 | ||
33 | $(ARCHIVAL_DIR)%.o: $(srcdir)/%.c | 38 | $(ARCHIVAL_DIR)%.o: $(srcdir)/%.c |
34 | $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $< | 39 | $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $< |
diff --git a/archival/libunarchive/Makefile.in b/archival/libunarchive/Makefile.in index 98fd76c12..99eb6386d 100644 --- a/archival/libunarchive/Makefile.in +++ b/archival/libunarchive/Makefile.in | |||
@@ -2,27 +2,20 @@ | |||
2 | # | 2 | # |
3 | # Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org> | 3 | # Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org> |
4 | # | 4 | # |
5 | # This program is free software; you can redistribute it and/or modify | 5 | # Licensed under the GPL v2 or later, see the file LICENSE in this tarball. |
6 | # it under the terms of the GNU General Public License as published by | ||
7 | # the Free Software Foundation; either version 2 of the License, or | ||
8 | # (at your option) any later version. | ||
9 | # | ||
10 | # This program is distributed in the hope that it will be useful, | ||
11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
13 | # General Public License for more details. | ||
14 | # | ||
15 | # You should have received a copy of the GNU General Public License | ||
16 | # along with this program; if not, write to the Free Software | ||
17 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
18 | # | 6 | # |
19 | 7 | ||
20 | LIBUNARCHIVE_AR:=libunarchive.a | 8 | LIBUNARCHIVE_AR:=libunarchive.a |
21 | ifndef $(LIBUNARCHIVE_DIR) | 9 | ifndef $(LIBUNARCHIVE_DIR) |
22 | LIBUNARCHIVE_DIR:=$(top_builddir)/archival/libunarchive/ | 10 | LIBUNARCHIVE_DIR:=$(top_builddir)/archival/libunarchive |
23 | endif | 11 | endif |
24 | srcdir=$(top_srcdir)/archival/libunarchive | 12 | srcdir=$(top_srcdir)/archival/libunarchive |
25 | 13 | ||
14 | LIBUNARCHIVE-obj:=$(LIBUNARCHIVE_DIR)/$(LIBUNARCHIVE_AR) | ||
15 | LIBUNARCHIVE-pic:=$(LIBUNARCHIVE_DIR)/$(subst .a,-pic.a,$(LIBUNARCHIVE_AR)) | ||
16 | |||
17 | libraries-y+=$(LIBUNARCHIVE-obj) | ||
18 | |||
26 | LIBUNARCHIVE-y:= \ | 19 | LIBUNARCHIVE-y:= \ |
27 | \ | 20 | \ |
28 | data_skip.o \ | 21 | data_skip.o \ |
@@ -74,12 +67,17 @@ LIBUNARCHIVE-$(CONFIG_FEATURE_TAR_COMPRESS) += decompress_uncompress.o | |||
74 | LIBUNARCHIVE-$(CONFIG_UNCOMPRESS) += decompress_uncompress.o | 67 | LIBUNARCHIVE-$(CONFIG_UNCOMPRESS) += decompress_uncompress.o |
75 | LIBUNARCHIVE-$(CONFIG_UNZIP) += $(GUNZIP_FILES) | 68 | LIBUNARCHIVE-$(CONFIG_UNZIP) += $(GUNZIP_FILES) |
76 | 69 | ||
77 | libraries-y+=$(LIBUNARCHIVE_DIR)$(LIBUNARCHIVE_AR) | ||
78 | 70 | ||
79 | LIBUNARCHIVE-y:=$(sort $(LIBUNARCHIVE-y)) | 71 | LIBUNARCHIVE-y:=$(sort $(LIBUNARCHIVE-y)) |
80 | $(LIBUNARCHIVE_DIR)$(LIBUNARCHIVE_AR): $(patsubst %,$(LIBUNARCHIVE_DIR)%, $(LIBUNARCHIVE-y)) | ||
81 | $(AR) $(ARFLAGS) $@ $(patsubst %,$(LIBUNARCHIVE_DIR)%, $(LIBUNARCHIVE-y)) | ||
82 | 72 | ||
83 | $(LIBUNARCHIVE_DIR)%.o: $(srcdir)/%.c | 73 | LIBUNARCHIVE_SRC-y:=$(patsubst %,$(srcdir)/%,$(subst .o,.c,$(LIBUNARCHIVE-y))) |
74 | LIBUNARCHIVE_SRC-a:=$(wildcard $(srcdir)/*.c) | ||
75 | LIBRARY_SRC-y+=$(LIBUNARCHIVE_SRC-y) | ||
76 | LIBRARY_SRC-a+=$(LIBUNARCHIVE_SRC-a) | ||
77 | |||
78 | $(LIBUNARCHIVE_DIR)/$(LIBUNARCHIVE_AR): $(patsubst %,$(LIBUNARCHIVE_DIR)/%,$(LIBUNARCHIVE-y)) | ||
79 | $(AR) $(ARFLAGS) $(@) $(^) | ||
80 | |||
81 | $(LIBUNARCHIVE_DIR)/%.o: $(srcdir)/%.c | ||
84 | $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $< | 82 | $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $< |
85 | 83 | ||
diff --git a/console-tools/Makefile.in b/console-tools/Makefile.in index 46cf524be..87858cd8e 100644 --- a/console-tools/Makefile.in +++ b/console-tools/Makefile.in | |||
@@ -10,22 +10,26 @@ CONSOLETOOLS_DIR:=$(top_builddir)/console-tools/ | |||
10 | endif | 10 | endif |
11 | srcdir=$(top_srcdir)/console-tools | 11 | srcdir=$(top_srcdir)/console-tools |
12 | 12 | ||
13 | CONSOLETOOLS_DIR-y:= | 13 | CONSOLETOOLS-y:= |
14 | CONSOLETOOLS_DIR-$(CONFIG_CHVT) += chvt.o | 14 | CONSOLETOOLS-$(CONFIG_CHVT) += chvt.o |
15 | CONSOLETOOLS_DIR-$(CONFIG_CLEAR) += clear.o | 15 | CONSOLETOOLS-$(CONFIG_CLEAR) += clear.o |
16 | CONSOLETOOLS_DIR-$(CONFIG_DEALLOCVT) += deallocvt.o | 16 | CONSOLETOOLS-$(CONFIG_DEALLOCVT) += deallocvt.o |
17 | CONSOLETOOLS_DIR-$(CONFIG_DUMPKMAP) += dumpkmap.o | 17 | CONSOLETOOLS-$(CONFIG_DUMPKMAP) += dumpkmap.o |
18 | CONSOLETOOLS_DIR-$(CONFIG_SETCONSOLE) += setconsole.o | 18 | CONSOLETOOLS-$(CONFIG_SETCONSOLE) += setconsole.o |
19 | CONSOLETOOLS_DIR-$(CONFIG_LOADFONT) += loadfont.o | 19 | CONSOLETOOLS-$(CONFIG_LOADFONT) += loadfont.o |
20 | CONSOLETOOLS_DIR-$(CONFIG_LOADKMAP) += loadkmap.o | 20 | CONSOLETOOLS-$(CONFIG_LOADKMAP) += loadkmap.o |
21 | CONSOLETOOLS_DIR-$(CONFIG_OPENVT) += openvt.o | 21 | CONSOLETOOLS-$(CONFIG_OPENVT) += openvt.o |
22 | CONSOLETOOLS_DIR-$(CONFIG_RESET) += reset.o | 22 | CONSOLETOOLS-$(CONFIG_RESET) += reset.o |
23 | CONSOLETOOLS_DIR-$(CONFIG_SETKEYCODES) += setkeycodes.o | 23 | CONSOLETOOLS-$(CONFIG_SETKEYCODES) += setkeycodes.o |
24 | 24 | ||
25 | libraries-y+=$(CONSOLETOOLS_DIR)$(CONSOLETOOLS_AR) | 25 | libraries-y+=$(CONSOLETOOLS_DIR)$(CONSOLETOOLS_AR) |
26 | CONSOLETOOLS_SRC-y:=$(patsubst %.o,$(srcdir)/%.c,$(CONSOLETOOLS-y)) | ||
27 | CONSOLETOOLS_SRC-a:=$(wildcard $(srcdir)/*.c) | ||
28 | APPLET_SRC-y+=$(CONSOLETOOLS_SRC-y) | ||
29 | APPLET_SRC-a+=$(CONSOLETOOLS_SRC-a) | ||
26 | 30 | ||
27 | $(CONSOLETOOLS_DIR)$(CONSOLETOOLS_AR): $(patsubst %,$(CONSOLETOOLS_DIR)%, $(CONSOLETOOLS_DIR-y)) | 31 | $(CONSOLETOOLS_DIR)$(CONSOLETOOLS_AR): $(patsubst %,$(CONSOLETOOLS_DIR)%, $(CONSOLETOOLS-y)) |
28 | $(AR) $(ARFLAGS) $@ $(patsubst %,$(CONSOLETOOLS_DIR)%, $(CONSOLETOOLS_DIR-y)) | 32 | $(AR) $(ARFLAGS) $@ $(patsubst %,$(CONSOLETOOLS_DIR)%, $(CONSOLETOOLS-y)) |
29 | 33 | ||
30 | $(CONSOLETOOLS_DIR)%.o: $(srcdir)/%.c | 34 | $(CONSOLETOOLS_DIR)%.o: $(srcdir)/%.c |
31 | $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $< | 35 | $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $< |
diff --git a/coreutils/Makefile.in b/coreutils/Makefile.in index 9dc604b1a..54ccf921f 100644 --- a/coreutils/Makefile.in +++ b/coreutils/Makefile.in | |||
@@ -81,7 +81,12 @@ COREUTILS-$(CONFIG_WHO) += who.o | |||
81 | COREUTILS-$(CONFIG_WHOAMI) += whoami.o | 81 | COREUTILS-$(CONFIG_WHOAMI) += whoami.o |
82 | COREUTILS-$(CONFIG_YES) += yes.o | 82 | COREUTILS-$(CONFIG_YES) += yes.o |
83 | 83 | ||
84 | COREUTILS-y:=$(sort $(COREUTILS-y)) | ||
84 | libraries-y+=$(COREUTILS_DIR)$(COREUTILS_AR) | 85 | libraries-y+=$(COREUTILS_DIR)$(COREUTILS_AR) |
86 | COREUTILS_SRC-y:=$(patsubst %.o,$(srcdir)/%.c,$(COREUTILS-y)) | ||
87 | COREUTILS_SRC-a:=$(wildcard $(srcdir)/*.c) | ||
88 | APPLET_SRC-y+=$(COREUTILS_SRC-y) | ||
89 | APPLET_SRC-a+=$(COREUTILS_SRC-a) | ||
85 | 90 | ||
86 | $(COREUTILS_DIR)$(COREUTILS_AR): $(patsubst %,$(COREUTILS_DIR)%, $(COREUTILS-y)) | 91 | $(COREUTILS_DIR)$(COREUTILS_AR): $(patsubst %,$(COREUTILS_DIR)%, $(COREUTILS-y)) |
87 | $(AR) $(ARFLAGS) $@ $(patsubst %,$(COREUTILS_DIR)%, $(COREUTILS-y)) | 92 | $(AR) $(ARFLAGS) $@ $(patsubst %,$(COREUTILS_DIR)%, $(COREUTILS-y)) |
diff --git a/coreutils/libcoreutils/Makefile.in b/coreutils/libcoreutils/Makefile.in index fe66c8243..1f0c19e73 100644 --- a/coreutils/libcoreutils/Makefile.in +++ b/coreutils/libcoreutils/Makefile.in | |||
@@ -2,36 +2,51 @@ | |||
2 | # | 2 | # |
3 | # Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org> | 3 | # Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org> |
4 | # | 4 | # |
5 | # This program is free software; you can redistribute it and/or modify | 5 | # Licensed under the GPL v2 or later, see the file LICENSE in this tarball. |
6 | # it under the terms of the GNU General Public License as published by | ||
7 | # the Free Software Foundation; either version 2 of the License, or | ||
8 | # (at your option) any later version. | ||
9 | # | ||
10 | # This program is distributed in the hope that it will be useful, | ||
11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
13 | # General Public License for more details. | ||
14 | # | ||
15 | # You should have received a copy of the GNU General Public License | ||
16 | # along with this program; if not, write to the Free Software | ||
17 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
18 | # | 6 | # |
19 | 7 | ||
20 | LIBCOREUTILS_AR:=libcoreutils.a | 8 | LIBCOREUTILS_AR:=libcoreutils.a |
21 | ifndef $(LIBCOREUTILS_DIR) | 9 | ifndef $(LIBCOREUTILS_DIR) |
22 | LIBCOREUTILS_DIR:=$(top_builddir)/coreutils/libcoreutils/ | 10 | LIBCOREUTILS_DIR:=$(top_builddir)/coreutils/libcoreutils |
23 | endif | 11 | endif |
24 | srcdir=$(top_srcdir)/coreutils/libcoreutils | 12 | srcdir=$(top_srcdir)/coreutils/libcoreutils |
25 | 13 | ||
26 | LIBCOREUTILS_SRC:= cp_mv_stat.c getopt_mk_fifo_nod.c | 14 | LIBCOREUTILS_ALL_SRC:= cp_mv_stat.c getopt_mk_fifo_nod.c |
15 | |||
16 | LIBCOREUTILS-y:= | ||
17 | LIBCOREUTILS-$(CONFIG_MKFIFO) += getopt_mk_fifo_nod.o | ||
18 | LIBCOREUTILS-$(CONFIG_MKNOD) += getopt_mk_fifo_nod.o | ||
19 | LIBCOREUTILS-$(CONFIG_INSTALL) += cp_mv_stat.o | ||
20 | LIBCOREUTILS-$(CONFIG_CP) += cp_mv_stat.o | ||
21 | LIBCOREUTILS-$(CONFIG_MV) += cp_mv_stat.o | ||
22 | |||
23 | LIBCOREUTILS-y:=$(sort $(LIBCOREUTILS-y)) | ||
24 | |||
25 | LIBCOREUTILS_SRC-y:=$(patsubst %,$(srcdir)/%,$(subst .o,.c,$(LIBCOREUTILS-y))) | ||
26 | LIBCOREUTILS_SRC-a:=$(wildcard $(srcdir)/*.c) | ||
27 | LIBRARY_SRC-y+=$(LIBCOREUTILS_SRC-y) | ||
28 | LIBRARY_SRC-a+=$(LIBCOREUTILS_SRC-a) | ||
27 | 29 | ||
28 | LIBCOREUTILS_OBJS=$(patsubst %.c,$(LIBCOREUTILS_DIR)%.o, $(LIBCOREUTILS_SRC)) | 30 | LIBCOREUTILS-multi-obj:=$(LIBCOREUTILS_DIR)/$(subst .a,-multi.o,$(LIBCOREUTILS_AR)) |
31 | LIBCOREUTILS-multi-pic:=$(LIBCOREUTILS_DIR)/$(subst .a,-pic.o,$(LIBCOREUTILS_AR)) | ||
32 | |||
33 | # We do not need to build an empty non-pic object/archive | ||
34 | ifneq ($(strip $(LIBCOREUTILS-y)),) | ||
35 | libraries-y+=$(LIBCOREUTILS_DIR)/$(LIBCOREUTILS_AR) | ||
36 | endif | ||
37 | # If we are building libbusybox.so _and_ we will use it ourselves then we | ||
38 | # keep it as small as possible | ||
39 | ifeq ($(strip $(CONFIG_FEATURE_SHARED_BUSYBOX)),y) | ||
40 | ifneq ($(strip $(LIBIPROUTE-y)),) | ||
41 | libraries-m+=$(LIBCOREUTILS-multi-pic) | ||
42 | endif | ||
43 | endif | ||
29 | 44 | ||
30 | libraries-y+=$(LIBCOREUTILS_DIR)$(LIBCOREUTILS_AR) | 45 | LIBCOREUTILS_OBJS=$(patsubst %,$(LIBCOREUTILS_DIR)/%, $(LIBCOREUTILS-y)) |
31 | 46 | ||
32 | $(LIBCOREUTILS_DIR)$(LIBCOREUTILS_AR): $(LIBCOREUTILS_OBJS) | 47 | $(LIBCOREUTILS_DIR)/$(LIBCOREUTILS_AR): $(patsubst %,$(LIBCOREUTILS_DIR)/%,$(LIBCOREUTILS-y)) |
33 | $(AR) $(ARFLAGS) $@ $(LIBCOREUTILS_OBJS) | 48 | $(AR) $(ARFLAGS) $(@) $(^) |
34 | 49 | ||
35 | $(LIBCOREUTILS_DIR)%.o: $(srcdir)/%.c | 50 | $(LIBCOREUTILS_DIR)/%.o: $(srcdir)/%.c |
36 | $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $< | 51 | $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $< |
37 | 52 | ||
diff --git a/debianutils/Makefile.in b/debianutils/Makefile.in index c0185f4aa..4a715d0d8 100644 --- a/debianutils/Makefile.in +++ b/debianutils/Makefile.in | |||
@@ -19,6 +19,10 @@ DEBIANUTILS-$(CONFIG_START_STOP_DAEMON) += start_stop_daemon.o | |||
19 | DEBIANUTILS-$(CONFIG_WHICH) += which.o | 19 | DEBIANUTILS-$(CONFIG_WHICH) += which.o |
20 | 20 | ||
21 | libraries-y+=$(DEBIANUTILS_DIR)$(DEBIANUTILS_AR) | 21 | libraries-y+=$(DEBIANUTILS_DIR)$(DEBIANUTILS_AR) |
22 | DEBIANUTILS_SRC-y:=$(patsubst %.o,$(srcdir)/%.c,$(DEBIANUTILS-y)) | ||
23 | DEBIANUTILS_SRC-a:=$(wildcard $(srcdir)/*.c) | ||
24 | APPLET_SRC-y+=$(DEBIANUTILS_SRC-y) | ||
25 | APPLET_SRC-a+=$(DEBIANUTILS_SRC-a) | ||
22 | 26 | ||
23 | $(DEBIANUTILS_DIR)$(DEBIANUTILS_AR): $(patsubst %,$(DEBIANUTILS_DIR)%, $(DEBIANUTILS-y)) | 27 | $(DEBIANUTILS_DIR)$(DEBIANUTILS_AR): $(patsubst %,$(DEBIANUTILS_DIR)%, $(DEBIANUTILS-y)) |
24 | $(AR) $(ARFLAGS) $@ $(patsubst %,$(DEBIANUTILS_DIR)%, $(DEBIANUTILS-y)) | 28 | $(AR) $(ARFLAGS) $@ $(patsubst %,$(DEBIANUTILS_DIR)%, $(DEBIANUTILS-y)) |
diff --git a/e2fsprogs/Makefile.in b/e2fsprogs/Makefile.in index 181ec7033..c492c6779 100644 --- a/e2fsprogs/Makefile.in +++ b/e2fsprogs/Makefile.in | |||
@@ -62,8 +62,19 @@ E2FSPROGS-$(CONFIG_LSATTR) += lsattr.o $(E2P_OBJS) | |||
62 | E2FSPROGS-$(CONFIG_MKE2FS) += mke2fs.o util.o $(E2P_OBJS) $(BLKID_OBJS) $(EXT2FS_OBJS) $(UUID_OBJS) | 62 | E2FSPROGS-$(CONFIG_MKE2FS) += mke2fs.o util.o $(E2P_OBJS) $(BLKID_OBJS) $(EXT2FS_OBJS) $(UUID_OBJS) |
63 | E2FSPROGS-$(CONFIG_TUNE2FS) += tune2fs.o util.o $(E2P_OBJS) $(BLKID_OBJS) $(EXT2FS_OBJS) $(UUID_OBJS) | 63 | E2FSPROGS-$(CONFIG_TUNE2FS) += tune2fs.o util.o $(E2P_OBJS) $(BLKID_OBJS) $(EXT2FS_OBJS) $(UUID_OBJS) |
64 | 64 | ||
65 | E2FSPROGS-y:=$(sort $(E2FSPROGS-y)) | ||
66 | |||
65 | libraries-y+=$(E2FSPROGS_DIR)/$(E2FSPROGS_AR) | 67 | libraries-y+=$(E2FSPROGS_DIR)/$(E2FSPROGS_AR) |
68 | E2FSPROGS_SRC-y:=$(patsubst %.o,$(E2FSPROGS_SRC)/%.c,$(E2FSPROGS-y)) | ||
69 | E2FSPROGS_SRC-a:=$(wildcard $(E2FSPROGS_SRC)/*.c) $(patsubst %,$(E2FSPROGS_SRC)/%,$(BLKID_SRCS) $(E2P_SRCS) $(EXT2FS_SRCS) $(UUID_SRCS)) | ||
70 | APPLET_SRC-y+=$(E2FSPROGS_CFLAGS) $(E2FSPROGS_SRC-y) | ||
71 | APPLET_SRC-a+=$(E2FSPROGS_CFLAGS) $(E2FSPROGS_SRC-a) | ||
72 | |||
73 | # XXX: FIXME: change .c to include their stuff relative to $(E2FSPROGS_SRC) | ||
74 | E2FSPROGS_TMP_KLUDGE:=$(patsubst %,-I$(E2FSPROGS_SRC)/%,blkid e2fsck e2p ext2fs uuid) | ||
66 | 75 | ||
76 | APPLETS_DEFINE-y+=$(E2FSPROGS_CFLAGS) -I$(E2FSPROGS_SRC) $(E2FSPROGS_TMP_KLUDGE) | ||
77 | APPLETS_DEFINE-a+=$(E2FSPROGS_CFLAGS) -I$(E2FSPROGS_SRC) $(E2FSPROGS_TMP_KLUDGE) | ||
67 | 78 | ||
68 | $(E2FSPROGS_DIR)/$(E2FSPROGS_AR): $(patsubst %,$(E2FSPROGS_DIR)/%, $(E2FSPROGS-y)) | 79 | $(E2FSPROGS_DIR)/$(E2FSPROGS_AR): $(patsubst %,$(E2FSPROGS_DIR)/%, $(E2FSPROGS-y)) |
69 | $(AR) $(ARFLAGS) $@ $(patsubst %,$(E2FSPROGS_DIR)/%, $(E2FSPROGS-y)) | 80 | $(AR) $(ARFLAGS) $@ $(patsubst %,$(E2FSPROGS_DIR)/%, $(E2FSPROGS-y)) |
diff --git a/editors/Makefile.in b/editors/Makefile.in index 01fb8b527..114d6200d 100644 --- a/editors/Makefile.in +++ b/editors/Makefile.in | |||
@@ -15,16 +15,19 @@ EDITOR-$(CONFIG_AWK) += awk.o | |||
15 | EDITOR-$(CONFIG_PATCH) += patch.o | 15 | EDITOR-$(CONFIG_PATCH) += patch.o |
16 | EDITOR-$(CONFIG_SED) += sed.o | 16 | EDITOR-$(CONFIG_SED) += sed.o |
17 | EDITOR-$(CONFIG_VI) += vi.o | 17 | EDITOR-$(CONFIG_VI) += vi.o |
18 | EDITOR_SRC:= $(EDITOR-y) | ||
19 | EDITOR_OBJ:= $(patsubst %.c,$(EDITOR_DIR)%.o, $(EDITOR_SRC)) | ||
20 | 18 | ||
21 | libraries-y+=$(EDITOR_DIR)$(EDITOR_AR) | 19 | libraries-y+=$(EDITOR_DIR)$(EDITOR_AR) |
22 | 20 | ||
21 | EDITOR_SRC-y:=$(patsubst %.o,$(srcdir)/%.c,$(EDITOR-y)) | ||
22 | EDITOR_SRC-a:=$(wildcard $(srcdir)/*.c) | ||
23 | APPLET_SRC-y+=$(EDITOR_SRC-y) | ||
24 | APPLET_SRC-a+=$(EDITOR_SRC-a) | ||
25 | |||
23 | needlibm-y:= | 26 | needlibm-y:= |
24 | needlibm-$(CONFIG_FEATURE_AWK_MATH) := y | 27 | needlibm-$(CONFIG_FEATURE_AWK_MATH) := y |
25 | 28 | ||
26 | ifeq ($(needlibm-y),y) | 29 | ifeq ($(needlibm-y),y) |
27 | LIBRARIES += -lm | 30 | LIBRARIES := -lm $(filter-out -lm,$(LIBRARIES)) |
28 | endif | 31 | endif |
29 | 32 | ||
30 | $(EDITOR_DIR)$(EDITOR_AR): $(patsubst %,$(EDITOR_DIR)%, $(EDITOR-y)) | 33 | $(EDITOR_DIR)$(EDITOR_AR): $(patsubst %,$(EDITOR_DIR)%, $(EDITOR-y)) |
diff --git a/findutils/Makefile.in b/findutils/Makefile.in index 2dcb702e8..418f43a38 100644 --- a/findutils/Makefile.in +++ b/findutils/Makefile.in | |||
@@ -17,6 +17,11 @@ FINDUTILS-$(CONFIG_XARGS) += xargs.o | |||
17 | 17 | ||
18 | libraries-y+=$(FINDUTILS_DIR)$(FINDUTILS_AR) | 18 | libraries-y+=$(FINDUTILS_DIR)$(FINDUTILS_AR) |
19 | 19 | ||
20 | FINDUTILS_SRC-y:=$(patsubst %.o,$(srcdir)/%.c,$(FINDUTILS-y)) | ||
21 | FINDUTILS_SRC-a:=$(wildcard $(srcdir)/*.c) | ||
22 | APPLET_SRC-y+=$(FINDUTILS_SRC-y) | ||
23 | APPLET_SRC-a+=$(FINDUTILS_SRC-a) | ||
24 | |||
20 | $(FINDUTILS_DIR)$(FINDUTILS_AR): $(patsubst %,$(FINDUTILS_DIR)%, $(FINDUTILS-y)) | 25 | $(FINDUTILS_DIR)$(FINDUTILS_AR): $(patsubst %,$(FINDUTILS_DIR)%, $(FINDUTILS-y)) |
21 | $(AR) $(ARFLAGS) $@ $(patsubst %,$(FINDUTILS_DIR)%, $(FINDUTILS-y)) | 26 | $(AR) $(ARFLAGS) $@ $(patsubst %,$(FINDUTILS_DIR)%, $(FINDUTILS-y)) |
22 | 27 | ||
diff --git a/include/libbb.h b/include/libbb.h index e9a828c52..2e697a350 100644 --- a/include/libbb.h +++ b/include/libbb.h | |||
@@ -86,7 +86,7 @@ | |||
86 | #define MAX(a,b) (((a)>(b))?(a):(b)) | 86 | #define MAX(a,b) (((a)>(b))?(a):(b)) |
87 | #endif | 87 | #endif |
88 | 88 | ||
89 | extern void bb_show_usage(void) __attribute__ ((noreturn)); | 89 | extern void bb_show_usage(void) __attribute__ ((noreturn, externally_visible)); |
90 | extern void bb_error_msg(const char *s, ...) __attribute__ ((format (printf, 1, 2))); | 90 | extern void bb_error_msg(const char *s, ...) __attribute__ ((format (printf, 1, 2))); |
91 | extern void bb_error_msg_and_die(const char *s, ...) __attribute__ ((noreturn, format (printf, 1, 2))); | 91 | extern void bb_error_msg_and_die(const char *s, ...) __attribute__ ((noreturn, format (printf, 1, 2))); |
92 | extern void bb_perror_msg(const char *s, ...) __attribute__ ((format (printf, 1, 2))); | 92 | extern void bb_perror_msg(const char *s, ...) __attribute__ ((format (printf, 1, 2))); |
diff --git a/init/Makefile.in b/init/Makefile.in index 5b3d9eaf0..02d379445 100644 --- a/init/Makefile.in +++ b/init/Makefile.in | |||
@@ -17,16 +17,16 @@ INIT-$(CONFIG_MESG) += mesg.o | |||
17 | INIT-$(CONFIG_POWEROFF) += poweroff.o | 17 | INIT-$(CONFIG_POWEROFF) += poweroff.o |
18 | INIT-$(CONFIG_REBOOT) += reboot.o | 18 | INIT-$(CONFIG_REBOOT) += reboot.o |
19 | 19 | ||
20 | ifeq ($(CONFIG_HALT), y) | 20 | ifeq ($(strip $(CONFIG_HALT)),y) |
21 | CONFIG_INIT_SHARED=y | 21 | CONFIG_INIT_SHARED=y |
22 | else | 22 | else |
23 | ifeq ($(CONFIG_INIT), y) | 23 | ifeq ($(strip $(CONFIG_INIT)),y) |
24 | CONFIG_INIT_SHARED=y | 24 | CONFIG_INIT_SHARED=y |
25 | else | 25 | else |
26 | ifeq ($(CONFIG_POWEROFF), y) | 26 | ifeq ($(strip $(CONFIG_POWEROFF)),y) |
27 | CONFIG_INIT_SHARED=y | 27 | CONFIG_INIT_SHARED=y |
28 | else | 28 | else |
29 | ifeq ($(CONFIG_REBOOT), y) | 29 | ifeq ($(strip $(CONFIG_REBOOT)),y) |
30 | CONFIG_INIT_SHARED=y | 30 | CONFIG_INIT_SHARED=y |
31 | else | 31 | else |
32 | CONFIG_INIT_SHARED=n | 32 | CONFIG_INIT_SHARED=n |
@@ -35,12 +35,17 @@ endif | |||
35 | endif | 35 | endif |
36 | endif | 36 | endif |
37 | 37 | ||
38 | ifeq ($(CONFIG_INIT_SHARED), y) | 38 | ifeq ($(strip $(CONFIG_INIT_SHARED)),y) |
39 | INIT-$(CONFIG_INIT_SHARED) += init_shared.o | 39 | INIT-$(CONFIG_INIT_SHARED) += init_shared.o |
40 | endif | 40 | endif |
41 | 41 | ||
42 | libraries-y+=$(INIT_DIR)$(INIT_AR) | 42 | libraries-y+=$(INIT_DIR)$(INIT_AR) |
43 | 43 | ||
44 | INIT_SRC-y:=$(patsubst %.o,$(srcdir)/%.c,$(INIT-y)) | ||
45 | INIT_SRC-a:=$(wildcard $(srcdir)/*.c) | ||
46 | APPLET_SRC-y+=$(INIT_SRC-y) | ||
47 | APPLET_SRC-a+=$(INIT_SRC-a) | ||
48 | |||
44 | $(INIT_DIR)$(INIT_AR): $(patsubst %,$(INIT_DIR)%, $(INIT-y)) | 49 | $(INIT_DIR)$(INIT_AR): $(patsubst %,$(INIT_DIR)%, $(INIT-y)) |
45 | $(AR) $(ARFLAGS) $@ $(patsubst %,$(INIT_DIR)%, $(INIT-y)) | 50 | $(AR) $(ARFLAGS) $@ $(patsubst %,$(INIT_DIR)%, $(INIT-y)) |
46 | 51 | ||
diff --git a/libbb/Makefile.in b/libbb/Makefile.in index 91698a919..bb3790a58 100644 --- a/libbb/Makefile.in +++ b/libbb/Makefile.in | |||
@@ -4,13 +4,13 @@ | |||
4 | # | 4 | # |
5 | # Licensed under the GPL v2, see the file LICENSE in this tarball. | 5 | # Licensed under the GPL v2, see the file LICENSE in this tarball. |
6 | 6 | ||
7 | LIBBB_AR:=libbb.a | ||
8 | ifndef $(LIBBB_DIR) | 7 | ifndef $(LIBBB_DIR) |
9 | LIBBB_DIR:=$(top_builddir)/libbb/ | 8 | LIBBB_DIR:=$(top_builddir)/libbb |
10 | endif | 9 | endif |
11 | srcdir=$(top_srcdir)/libbb | 10 | srcdir=$(top_srcdir)/libbb |
12 | 11 | ||
13 | LIBBB_SRC-y:= \ | 12 | LIBBB-n:= |
13 | LIBBB-y:= \ | ||
14 | bb_asprintf.c ask_confirmation.c change_identity.c chomp.c \ | 14 | bb_asprintf.c ask_confirmation.c change_identity.c chomp.c \ |
15 | compare_string_array.c concat_path_file.c copy_file.c copyfd.c \ | 15 | compare_string_array.c concat_path_file.c copy_file.c copyfd.c \ |
16 | correct_password.c create_icmp_socket.c create_icmp6_socket.c \ | 16 | correct_password.c create_icmp_socket.c create_icmp6_socket.c \ |
@@ -36,10 +36,14 @@ LIBBB_SRC-y:= \ | |||
36 | warn_ignoring_args.c concat_subpath_file.c vfork_daemon_rexec.c \ | 36 | warn_ignoring_args.c concat_subpath_file.c vfork_daemon_rexec.c \ |
37 | bb_echo.c bb_do_delay.c | 37 | bb_echo.c bb_do_delay.c |
38 | 38 | ||
39 | LIBBB_SRC-$(CONFIG_FEATURE_SHADOWPASSWDS)+= pwd2spwd.c | 39 | # conditionally compiled objects: |
40 | LIBBB-$(CONFIG_FEATURE_SHADOWPASSWDS)+=pwd2spwd.c | ||
41 | LIBBB-$(CONFIG_FEATURE_MTAB_SUPPORT)+= mtab.c | ||
40 | 42 | ||
41 | LIBBB_OBJS=$(patsubst %.c,$(LIBBB_DIR)%.o, $(LIBBB_SRC-y)) | ||
42 | 43 | ||
44 | LIBBB-y:=$(patsubst %,$(srcdir)/%,$(LIBBB-y)) | ||
45 | |||
46 | # 1:N objects | ||
43 | LIBBB_MSRC0:=$(srcdir)/messages.c | 47 | LIBBB_MSRC0:=$(srcdir)/messages.c |
44 | LIBBB_MOBJ0:=full_version.o \ | 48 | LIBBB_MOBJ0:=full_version.o \ |
45 | memory_exhausted.o invalid_date.o io_error.o \ | 49 | memory_exhausted.o invalid_date.o io_error.o \ |
@@ -49,65 +53,90 @@ LIBBB_MOBJ0:=full_version.o \ | |||
49 | securetty_file.o motd_file.o \ | 53 | securetty_file.o motd_file.o \ |
50 | msg_standard_input.o msg_standard_output.o shell_file.o \ | 54 | msg_standard_input.o msg_standard_output.o shell_file.o \ |
51 | bb_dev_null.o bb_common_bufsiz1.o | 55 | bb_dev_null.o bb_common_bufsiz1.o |
56 | LIBBB_MOBJ0:=$(patsubst %,$(LIBBB_DIR)/%, $(LIBBB_MOBJ0)) | ||
57 | $(LIBBB_MOBJ0):$(LIBBB_MSRC0) | ||
58 | $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -DL_$(notdir $*) -o $@ -c $< | ||
52 | 59 | ||
53 | LIBBB_MSRC1:=$(srcdir)/xfuncs.c | 60 | LIBBB_MSRC1:=$(srcdir)/xfuncs.c |
54 | LIBBB_MOBJ1:=xmalloc.o xrealloc.o xcalloc.o xstrdup.o xstrndup.o \ | 61 | LIBBB_MOBJ1:=xmalloc.o xrealloc.o xcalloc.o xstrdup.o xstrndup.o \ |
55 | xfopen.o xopen.o xread.o xread_all.o xread_char.o \ | 62 | xfopen.o xopen.o xread.o xread_all.o xread_char.o \ |
56 | xferror.o xferror_stdout.o xfflush_stdout.o strlen.o | 63 | xferror.o xferror_stdout.o xfflush_stdout.o strlen.o |
64 | LIBBB_MOBJ1:=$(patsubst %,$(LIBBB_DIR)/%, $(LIBBB_MOBJ1)) | ||
65 | $(LIBBB_MOBJ1):$(LIBBB_MSRC1) | ||
66 | $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -DL_$(notdir $*) -o $@ -c $< | ||
57 | 67 | ||
58 | LIBBB_MSRC2:=$(srcdir)/printf.c | 68 | LIBBB_MSRC2:=$(srcdir)/printf.c |
59 | LIBBB_MOBJ2:=bb_vfprintf.o bb_vprintf.o bb_fprintf.o bb_printf.o | 69 | LIBBB_MOBJ2:=bb_vfprintf.o bb_vprintf.o bb_fprintf.o bb_printf.o |
70 | LIBBB_MOBJ2:=$(patsubst %,$(LIBBB_DIR)/%, $(LIBBB_MOBJ2)) | ||
71 | $(LIBBB_MOBJ2):$(LIBBB_MSRC2) | ||
72 | $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -DL_$(notdir $*) -o $@ -c $< | ||
60 | 73 | ||
61 | LIBBB_MSRC3:=$(srcdir)/xgetularg.c | 74 | LIBBB_MSRC3:=$(srcdir)/xgetularg.c |
62 | LIBBB_MOBJ3:=xgetularg_bnd_sfx.o xgetlarg_bnd_sfx.o getlarg10_sfx.o \ | 75 | LIBBB_MOBJ3:=xgetularg_bnd_sfx.o xgetlarg_bnd_sfx.o getlarg10_sfx.o \ |
63 | xgetularg_bnd.o xgetularg10_bnd.o xgetularg10.o | 76 | xgetularg_bnd.o xgetularg10_bnd.o xgetularg10.o |
77 | LIBBB_MOBJ3:=$(patsubst %,$(LIBBB_DIR)/%, $(LIBBB_MOBJ3)) | ||
78 | $(LIBBB_MOBJ3):$(LIBBB_MSRC3) | ||
79 | $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -DL_$(notdir $*) -o $@ -c $< | ||
64 | 80 | ||
65 | LIBBB_MSRC4:=$(srcdir)/safe_strtol.c | 81 | LIBBB_MSRC4:=$(srcdir)/safe_strtol.c |
66 | LIBBB_MOBJ4:=safe_strtoi.o safe_strtod.o safe_strtol.o safe_strtoul.o | 82 | LIBBB_MOBJ4:=safe_strtoi.o safe_strtod.o safe_strtol.o safe_strtoul.o |
83 | LIBBB_MOBJ4:=$(patsubst %,$(LIBBB_DIR)/%, $(LIBBB_MOBJ4)) | ||
84 | $(LIBBB_MOBJ4):$(LIBBB_MSRC4) | ||
85 | $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -DL_$(notdir $*) -o $@ -c $< | ||
67 | 86 | ||
68 | LIBBB_MSRC5:=$(srcdir)/bb_pwd.c | 87 | LIBBB_MSRC5:=$(srcdir)/bb_pwd.c |
69 | LIBBB_MOBJ5:=bb_xgetpwnam.o bb_xgetgrnam.o bb_getgrgid.o bb_getpwuid.o \ | 88 | LIBBB_MOBJ5:=bb_xgetpwnam.o bb_xgetgrnam.o bb_getgrgid.o bb_getpwuid.o \ |
70 | bb_getug.o get_ug_id.o | 89 | bb_getug.o get_ug_id.o |
90 | LIBBB_MOBJ5:=$(patsubst %,$(LIBBB_DIR)/%, $(LIBBB_MOBJ5)) | ||
91 | $(LIBBB_MOBJ5):$(LIBBB_MSRC5) | ||
92 | $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -DL_$(notdir $*) -o $@ -c $< | ||
71 | 93 | ||
72 | LIBBB_MSRC6:=$(srcdir)/llist.c | 94 | LIBBB_MSRC6:=$(srcdir)/llist.c |
73 | LIBBB_MOBJ6:=llist_add_to.o llist_add_to_end.o llist_free_one.o llist_free.o | 95 | LIBBB_MOBJ6:=llist_add_to.o llist_add_to_end.o llist_free_one.o llist_free.o |
96 | LIBBB_MOBJ6:=$(patsubst %,$(LIBBB_DIR)/%, $(LIBBB_MOBJ6)) | ||
97 | $(LIBBB_MOBJ6):$(LIBBB_MSRC6) | ||
98 | $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -DL_$(notdir $*) -o $@ -c $< | ||
74 | 99 | ||
75 | LIBBB_MOBJS0=$(patsubst %,$(LIBBB_DIR)%, $(LIBBB_MOBJ0)) | ||
76 | LIBBB_MOBJS1=$(patsubst %,$(LIBBB_DIR)%, $(LIBBB_MOBJ1)) | ||
77 | LIBBB_MOBJS2=$(patsubst %,$(LIBBB_DIR)%, $(LIBBB_MOBJ2)) | ||
78 | LIBBB_MOBJS3=$(patsubst %,$(LIBBB_DIR)%, $(LIBBB_MOBJ3)) | ||
79 | LIBBB_MOBJS4=$(patsubst %,$(LIBBB_DIR)%, $(LIBBB_MOBJ4)) | ||
80 | LIBBB_MOBJS5=$(patsubst %,$(LIBBB_DIR)%, $(LIBBB_MOBJ5)) | ||
81 | LIBBB_MOBJS6=$(patsubst %,$(LIBBB_DIR)%, $(LIBBB_MOBJ6)) | ||
82 | 100 | ||
83 | libraries-y+=$(LIBBB_DIR)$(LIBBB_AR) | 101 | # We need the names of the object files built from MSRC for the L_ defines |
102 | LIBBB_ALL_MOBJ:=$(LIBBB_MOBJ0) $(LIBBB_MOBJ1) $(LIBBB_MOBJ2) $(LIBBB_MOBJ3) $(LIBBB_MOBJ4) $(LIBBB_MOBJ5) $(LIBBB_MOBJ6) | ||
84 | 103 | ||
85 | $(LIBBB_DIR)$(LIBBB_AR): $(LIBBB_OBJS) $(LIBBB_MOBJS0) $(LIBBB_MOBJS1) \ | 104 | LIBBB_ALL_MSRC:=$(LIBBB_MSRC0) $(LIBBB_MSRC1) $(LIBBB_MSRC2) $(LIBBB_MSRC3) \ |
86 | $(LIBBB_MOBJS2) $(LIBBB_MOBJS3) $(LIBBB_MOBJS4) $(LIBBB_MOBJS5) \ | 105 | $(LIBBB_MSRC4) $(LIBBB_MSRC5) $(LIBBB_MSRC6) |
87 | $(LIBBB_MOBJS6) | ||
88 | $(AR) $(ARFLAGS) $(@) $(LIBBB_OBJS) $(^) | ||
89 | 106 | ||
90 | $(LIBBB_DIR)%.o: $(srcdir)/%.c | 107 | LIBBB-y:=$(sort $(LIBBB-y) $(LIBBB_ALL_MSRC)) |
91 | $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $< | ||
92 | 108 | ||
93 | $(LIBBB_MOBJS0): $(LIBBB_MSRC0) | 109 | LIBBB_AR:=$(LIBBB_DIR)/libbb.a |
94 | $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -DL_$(notdir $*) -c $< -o $@ | 110 | libraries-y+=$(LIBBB_AR) |
95 | 111 | ||
96 | $(LIBBB_MOBJS1): $(LIBBB_MSRC1) | 112 | needcrypt-y:= |
97 | $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -DL_$(notdir $*) -c $< -o $@ | 113 | ifneq ($(findstring $(srcdir)/pw_encrypt.c,$(LIBBB-y)),) |
114 | needcrypt-y:=y | ||
115 | else | ||
116 | ifneq ($(findstring $(srcdir)/correct_password.c,$(LIBBB-y)),) | ||
117 | needcrypt-y:=y | ||
118 | endif | ||
119 | endif | ||
120 | |||
121 | ifeq ($(needcrypt-y),y) | ||
122 | LIBRARIES := -lcrypt $(filter-out -lcrypt,$(LIBRARIES)) | ||
123 | endif | ||
98 | 124 | ||
99 | $(LIBBB_MOBJS2): $(LIBBB_MSRC2) | 125 | # all 1:1 objects |
100 | $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -DL_$(notdir $*) -c $< -o $@ | 126 | LIBBB_OBJS:=$(patsubst $(srcdir)/%.c,$(LIBBB_DIR)/%.o, $(LIBBB-y)) |
127 | $(LIBBB_DIR)/%.o: $(srcdir)/%.c | ||
128 | $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -o $@ -c $< | ||
101 | 129 | ||
102 | $(LIBBB_MOBJS3): $(LIBBB_MSRC3) | ||
103 | $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -DL_$(notdir $*) -c $< -o $@ | ||
104 | 130 | ||
105 | $(LIBBB_MOBJS4): $(LIBBB_MSRC4) | 131 | LIBBB_SRC-a:=$(wildcard $(srcdir)/*.c) |
106 | $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -DL_$(notdir $*) -c $< -o $@ | 132 | LIBRARY_SRC-y+=$(LIBBB-y) |
133 | LIBRARY_SRC-a+=$(LIBBB_SRC-a) | ||
107 | 134 | ||
108 | $(LIBBB_MOBJS5): $(LIBBB_MSRC5) | 135 | # all defines needed for 1:N objects |
109 | $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -DL_$(notdir $*) -c $< -o $@ | 136 | LIBBB_DEFINE-y:=$(patsubst %,-DL_%,$(subst .o,,$(notdir $(LIBBB_ALL_MOBJ)))) |
137 | LIBRARY_DEFINE-y+=$(LIBBB_DEFINE-y) | ||
138 | LIBRARY_DEFINE-a+=$(LIBBB_DEFINE-y) | ||
110 | 139 | ||
111 | $(LIBBB_MOBJS6): $(LIBBB_MSRC6) | 140 | $(LIBBB_AR): $(LIBBB_OBJS) $(LIBBB_ALL_MOBJ) |
112 | $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -DL_$(notdir $*) -c $< -o $@ | 141 | $(AR) $(ARFLAGS) $(@) $(^) |
113 | 142 | ||
diff --git a/libbb/find_mount_point.c b/libbb/find_mount_point.c index eec738aea..4d27b4809 100644 --- a/libbb/find_mount_point.c +++ b/libbb/find_mount_point.c | |||
@@ -48,11 +48,12 @@ extern struct mntent *find_mount_point(const char *name, const char *table) | |||
48 | mountDevice = s.st_dev; | 48 | mountDevice = s.st_dev; |
49 | 49 | ||
50 | 50 | ||
51 | if ((mountTable = setmntent(table ? : bb_path_mtab_file, "r")) == 0) | 51 | if ((mountTable = setmntent(table ? table : bb_path_mtab_file, "r")) == 0) |
52 | return 0; | 52 | return 0; |
53 | 53 | ||
54 | while ((mountEntry = getmntent(mountTable)) != 0) { | 54 | while ((mountEntry = getmntent(mountTable)) != 0) { |
55 | if (strcmp(name, mountEntry->mnt_dir) == 0 | 55 | |
56 | if(strcmp(name, mountEntry->mnt_dir) == 0 | ||
56 | || strcmp(name, mountEntry->mnt_fsname) == 0) /* String match. */ | 57 | || strcmp(name, mountEntry->mnt_fsname) == 0) /* String match. */ |
57 | break; | 58 | break; |
58 | if (stat(mountEntry->mnt_fsname, &s) == 0 && s.st_rdev == mountDevice) /* Match the device. */ | 59 | if (stat(mountEntry->mnt_fsname, &s) == 0 && s.st_rdev == mountDevice) /* Match the device. */ |
diff --git a/libpwdgrp/Makefile.in b/libpwdgrp/Makefile.in index 99674804c..550611681 100644 --- a/libpwdgrp/Makefile.in +++ b/libpwdgrp/Makefile.in | |||
@@ -6,10 +6,15 @@ | |||
6 | 6 | ||
7 | LIBPWDGRP_AR:=libpwdgrp.a | 7 | LIBPWDGRP_AR:=libpwdgrp.a |
8 | ifndef $(LIBPWDGRP_DIR) | 8 | ifndef $(LIBPWDGRP_DIR) |
9 | LIBPWDGRP_DIR:=$(top_builddir)/libpwdgrp/ | 9 | LIBPWDGRP_DIR:=$(top_builddir)/libpwdgrp |
10 | endif | 10 | endif |
11 | srcdir=$(top_srcdir)/libpwdgrp | 11 | srcdir=$(top_srcdir)/libpwdgrp |
12 | 12 | ||
13 | LIBPWDGRP-obj:=$(LIBPWDGRP_DIR)/$(LIBPWDGRP_AR) | ||
14 | LIBPWDGRP-pic:=$(LIBPWDGRP_DIR)/$(subst .a,-pic.o,$(LIBPWDGRP_AR)) | ||
15 | |||
16 | libraries-y+=$(LIBPWDGRP_DIR)/$(LIBPWDGRP_AR) | ||
17 | libraries-m+=$(LIBPWDGRP-multi-pic) | ||
13 | 18 | ||
14 | LIBPWDGRP_MSRC0:=$(srcdir)/pwd_grp.c | 19 | LIBPWDGRP_MSRC0:=$(srcdir)/pwd_grp.c |
15 | LIBPWDGRP_MOBJ0-$(CONFIG_USE_BB_PWD_GRP):= fgetpwent_r.o fgetgrent_r.o \ | 20 | LIBPWDGRP_MOBJ0-$(CONFIG_USE_BB_PWD_GRP):= fgetpwent_r.o fgetgrent_r.o \ |
@@ -17,19 +22,29 @@ LIBPWDGRP_MOBJ0-$(CONFIG_USE_BB_PWD_GRP):= fgetpwent_r.o fgetgrent_r.o \ | |||
17 | getgrgid_r.o getpwuid.o getgrgid.o getpwnam.o getgrnam.o getpw.o \ | 22 | getgrgid_r.o getpwuid.o getgrgid.o getpwnam.o getgrnam.o getpw.o \ |
18 | getpwent_r.o getgrent_r.o getpwent.o getgrent.o \ | 23 | getpwent_r.o getgrent_r.o getpwent.o getgrent.o \ |
19 | initgroups.o putpwent.o putgrent.o | 24 | initgroups.o putpwent.o putgrent.o |
20 | LIBPWDGRP_MOBJS0=$(patsubst %,$(LIBPWDGRP_DIR)%, $(LIBPWDGRP_MOBJ0-y)) | 25 | LIBPWDGRP_MOBJS0=$(patsubst %,$(LIBPWDGRP_DIR)/%, $(LIBPWDGRP_MOBJ0-y)) |
21 | 26 | ||
22 | LIBPWDGRP_MSRC1:=$(srcdir)/pwd_grp.c | 27 | LIBPWDGRP_MSRC1:=$(srcdir)/pwd_grp.c |
23 | LIBPWDGRP_MOBJ1-$(CONFIG_USE_BB_PWD_GRP):= __parsepwent.o __parsegrent.o \ | 28 | LIBPWDGRP_MOBJ1-$(CONFIG_USE_BB_PWD_GRP):= __parsepwent.o __parsegrent.o \ |
24 | __pgsreader.o fgetspent_r.o fgetspent.o sgetspent_r.o getspnam_r.o \ | 29 | __pgsreader.o fgetspent_r.o fgetspent.o sgetspent_r.o getspnam_r.o \ |
25 | getspnam.o getspent_r.o getspent.o sgetspent.o \ | 30 | getspnam.o getspent_r.o getspent.o sgetspent.o \ |
26 | putspent.o __parsespent.o # getspuid_r.o getspuid.o | 31 | putspent.o __parsespent.o # getspuid_r.o getspuid.o |
27 | LIBPWDGRP_MOBJS1=$(patsubst %,$(LIBPWDGRP_DIR)%, $(LIBPWDGRP_MOBJ1-y)) | 32 | LIBPWDGRP_MOBJS1=$(patsubst %,$(LIBPWDGRP_DIR)/%, $(LIBPWDGRP_MOBJ1-y)) |
33 | |||
34 | LIBPWDGRP_DEFINE0-y:=$(patsubst %,-DL_%,$(subst .o,,$(notdir $(LIBPWDGRP_MOBJS0)))) | ||
35 | LIBPWDGRP_DEFINE1-y:=$(patsubst %,-DL_%,$(subst .o,,$(notdir $(LIBPWDGRP_MOBJS1)))) | ||
36 | |||
37 | LIBPWDGRP_SRC-y:=$(LIBPWDGRP_MSRC0) | ||
38 | |||
39 | LIBRARY_SRC-y+=$(LIBPWDGRP_SRC-y) | ||
40 | LIBRARY_SRC-a+=$(LIBPWDGRP_SRC-y) | ||
41 | |||
42 | LIBRARY_DEFINE-y+=$(LIBPWDGRP_DEFINE0-y) $(LIBPWDGRP_DEFINE1-y) | ||
43 | LIBRARY_DEFINE-a+=$(LIBPWDGRP_DEFINE0-y) $(LIBPWDGRP_DEFINE1-y) | ||
28 | 44 | ||
29 | libraries-y+=$(LIBPWDGRP_DIR)$(LIBPWDGRP_AR) | ||
30 | 45 | ||
31 | $(LIBPWDGRP_DIR)$(LIBPWDGRP_AR): $(LIBPWDGRP_MOBJS0) $(LIBPWDGRP_MOBJS1) | 46 | $(LIBPWDGRP_DIR)/$(LIBPWDGRP_AR): $(LIBPWDGRP_MOBJS0) $(LIBPWDGRP_MOBJS1) |
32 | $(AR) $(ARFLAGS) $@ $(LIBPWDGRP_MOBJS0) $(LIBPWDGRP_MOBJS1) | 47 | $(AR) $(ARFLAGS) $(@) $(^) |
33 | 48 | ||
34 | $(LIBPWDGRP_MOBJS0): $(LIBPWDGRP_MSRC0) | 49 | $(LIBPWDGRP_MOBJS0): $(LIBPWDGRP_MSRC0) |
35 | $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -DL_$(notdir $*) -c $< -o $@ | 50 | $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -DL_$(notdir $*) -c $< -o $@ |
diff --git a/loginutils/Makefile.in b/loginutils/Makefile.in index c17865732..a2cfd8a67 100644 --- a/loginutils/Makefile.in +++ b/loginutils/Makefile.in | |||
@@ -24,6 +24,11 @@ LOGINUTILS-$(CONFIG_DELGROUP) += delgroup.o | |||
24 | 24 | ||
25 | libraries-y+=$(LOGINUTILS_DIR)$(LOGINUTILS_AR) | 25 | libraries-y+=$(LOGINUTILS_DIR)$(LOGINUTILS_AR) |
26 | 26 | ||
27 | LOGINUTILS_SRC-y:=$(patsubst %.o,$(srcdir)/%.c,$(LOGINUTILS-y)) | ||
28 | LOGINUTILS_SRC-a:=$(wildcard $(srcdir)/*.c) | ||
29 | APPLET_SRC-y+=$(LOGINUTILS_SRC-y) | ||
30 | APPLET_SRC-a+=$(LOGINUTILS_SRC-a) | ||
31 | |||
27 | needcrypt-y:= | 32 | needcrypt-y:= |
28 | needcrypt-$(CONFIG_LOGIN) := y | 33 | needcrypt-$(CONFIG_LOGIN) := y |
29 | needcrypt-$(CONFIG_PASSWD) := y | 34 | needcrypt-$(CONFIG_PASSWD) := y |
@@ -33,7 +38,7 @@ needcrypt-$(CONFIG_VLOCK) := y | |||
33 | 38 | ||
34 | 39 | ||
35 | ifeq ($(needcrypt-y),y) | 40 | ifeq ($(needcrypt-y),y) |
36 | LIBRARIES += -lcrypt | 41 | LIBRARIES := -lcrypt $(filter-out -lcrypt,$(LIBRARIES)) |
37 | endif | 42 | endif |
38 | 43 | ||
39 | $(LOGINUTILS_DIR)$(LOGINUTILS_AR): $(patsubst %,$(LOGINUTILS_DIR)%, $(LOGINUTILS-y)) | 44 | $(LOGINUTILS_DIR)$(LOGINUTILS_AR): $(patsubst %,$(LOGINUTILS_DIR)%, $(LOGINUTILS-y)) |
diff --git a/miscutils/Makefile.in b/miscutils/Makefile.in index 5bd522c11..6cd2b022c 100644 --- a/miscutils/Makefile.in +++ b/miscutils/Makefile.in | |||
@@ -33,11 +33,16 @@ MISCUTILS-$(CONFIG_WATCHDOG) += watchdog.o | |||
33 | 33 | ||
34 | libraries-y+=$(MISCUTILS_DIR)$(MISCUTILS_AR) | 34 | libraries-y+=$(MISCUTILS_DIR)$(MISCUTILS_AR) |
35 | 35 | ||
36 | MISCUTILS_SRC-y:=$(patsubst %.o,$(srcdir)/%.c,$(MISCUTILS-y)) | ||
37 | MISCUTILS_SRC-a:=$(wildcard $(srcdir)/*.c) | ||
38 | APPLET_SRC-y+=$(MISCUTILS_SRC-y) | ||
39 | APPLET_SRC-a+=$(MISCUTILS_SRC-a) | ||
40 | |||
36 | needlibm-y:= | 41 | needlibm-y:= |
37 | needlibm-$(CONFIG_DC) := y | 42 | needlibm-$(CONFIG_DC) := y |
38 | 43 | ||
39 | ifeq ($(needlibm-y),y) | 44 | ifeq ($(needlibm-y),y) |
40 | LIBRARIES += -lm | 45 | LIBRARIES := -lm $(filter-out -lm,$(LIBRARIES)) |
41 | endif | 46 | endif |
42 | 47 | ||
43 | $(MISCUTILS_DIR)$(MISCUTILS_AR): $(patsubst %,$(MISCUTILS_DIR)%, $(MISCUTILS-y)) | 48 | $(MISCUTILS_DIR)$(MISCUTILS_AR): $(patsubst %,$(MISCUTILS_DIR)%, $(MISCUTILS-y)) |
diff --git a/modutils/Makefile.in b/modutils/Makefile.in index df754afd2..f9934816e 100644 --- a/modutils/Makefile.in +++ b/modutils/Makefile.in | |||
@@ -18,6 +18,11 @@ MODUTILS-$(CONFIG_RMMOD) += rmmod.o | |||
18 | 18 | ||
19 | libraries-y+=$(MODUTILS_DIR)$(MODUTILS_AR) | 19 | libraries-y+=$(MODUTILS_DIR)$(MODUTILS_AR) |
20 | 20 | ||
21 | MODUTILS_SRC-y:=$(patsubst %.o,$(srcdir)/%.c,$(MODUTILS-y)) | ||
22 | MODUTILS_SRC-a:=$(wildcard $(srcdir)/*.c) | ||
23 | APPLET_SRC-y+=$(MODUTILS_SRC-y) | ||
24 | APPLET_SRC-a+=$(MODUTILS_SRC-a) | ||
25 | |||
21 | $(MODUTILS_DIR)$(MODUTILS_AR): $(patsubst %,$(MODUTILS_DIR)%, $(MODUTILS-y)) | 26 | $(MODUTILS_DIR)$(MODUTILS_AR): $(patsubst %,$(MODUTILS_DIR)%, $(MODUTILS-y)) |
22 | $(AR) $(ARFLAGS) $@ $(patsubst %,$(MODUTILS_DIR)%, $(MODUTILS-y)) | 27 | $(AR) $(ARFLAGS) $@ $(patsubst %,$(MODUTILS_DIR)%, $(MODUTILS-y)) |
23 | 28 | ||
diff --git a/networking/Makefile.in b/networking/Makefile.in index 376ecea63..2263acc00 100644 --- a/networking/Makefile.in +++ b/networking/Makefile.in | |||
@@ -9,6 +9,7 @@ ifndef $(NETWORKING_DIR) | |||
9 | NETWORKING_DIR:=$(top_builddir)/networking/ | 9 | NETWORKING_DIR:=$(top_builddir)/networking/ |
10 | endif | 10 | endif |
11 | srcdir=$(top_srcdir)/networking | 11 | srcdir=$(top_srcdir)/networking |
12 | |||
12 | NETWORKING-y:= | 13 | NETWORKING-y:= |
13 | NETWORKING-$(CONFIG_ARPING) += arping.o | 14 | NETWORKING-$(CONFIG_ARPING) += arping.o |
14 | NETWORKING-$(CONFIG_ETHER_WAKE) += ether-wake.o | 15 | NETWORKING-$(CONFIG_ETHER_WAKE) += ether-wake.o |
@@ -41,13 +42,22 @@ NETWORKING-$(CONFIG_VCONFIG) += vconfig.o | |||
41 | NETWORKING-$(CONFIG_WGET) += wget.o | 42 | NETWORKING-$(CONFIG_WGET) += wget.o |
42 | NETWORKING-$(CONFIG_ZCIP) += zcip.o | 43 | NETWORKING-$(CONFIG_ZCIP) += zcip.o |
43 | 44 | ||
45 | NETWORKING-y:=$(sort $(NETWORKING-y)) | ||
44 | libraries-y+=$(NETWORKING_DIR)$(NETWORKING_AR) | 46 | libraries-y+=$(NETWORKING_DIR)$(NETWORKING_AR) |
45 | 47 | ||
48 | NETWORKING_SRC-y:=$(patsubst %.o,$(srcdir)/%.c,$(NETWORKING-y)) | ||
49 | NETWORKING_SRC-a:=$(wildcard $(srcdir)/*.c) | ||
50 | APPLET_SRC-y+=$(NETWORKING_SRC-y) | ||
51 | APPLET_SRC-a+=$(NETWORKING_SRC-a) | ||
52 | |||
53 | LIBRARY_DEFINE-y+= -I$(top_srcdir)/networking | ||
54 | LIBRARY_DEFINE-a+= -I$(top_srcdir)/networking | ||
55 | |||
46 | needcrypt-y:= | 56 | needcrypt-y:= |
47 | needcrypt-$(CONFIG_FEATURE_HTTPD_AUTH_MD5) := y | 57 | needcrypt-$(CONFIG_FEATURE_HTTPD_AUTH_MD5) := y |
48 | 58 | ||
49 | ifeq ($(needcrypt-y),y) | 59 | ifeq ($(needcrypt-y),y) |
50 | LIBRARIES += -lcrypt | 60 | LIBRARIES := -lcrypt $(filter-out -lcrypt,$(LIBRARIES)) |
51 | endif | 61 | endif |
52 | 62 | ||
53 | $(NETWORKING_DIR)$(NETWORKING_AR): $(patsubst %,$(NETWORKING_DIR)%, $(NETWORKING-y)) | 63 | $(NETWORKING_DIR)$(NETWORKING_AR): $(patsubst %,$(NETWORKING_DIR)%, $(NETWORKING-y)) |
diff --git a/networking/libiproute/Makefile.in b/networking/libiproute/Makefile.in index a28af4611..37d556dd9 100644 --- a/networking/libiproute/Makefile.in +++ b/networking/libiproute/Makefile.in | |||
@@ -2,27 +2,16 @@ | |||
2 | # | 2 | # |
3 | # Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org> | 3 | # Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org> |
4 | # | 4 | # |
5 | # This program is free software; you can redistribute it and/or modify | 5 | # Licensed under the GPL v2 or later, see the file LICENSE in this tarball. |
6 | # it under the terms of the GNU General Public License as published by | ||
7 | # the Free Software Foundation; either version 2 of the License, or | ||
8 | # (at your option) any later version. | ||
9 | # | ||
10 | # This program is distributed in the hope that it will be useful, | ||
11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
13 | # General Public License for more details. | ||
14 | # | ||
15 | # You should have received a copy of the GNU General Public License | ||
16 | # along with this program; if not, write to the Free Software | ||
17 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
18 | # | 6 | # |
19 | 7 | ||
20 | LIBIPROUTE_AR:=libiproute.a | 8 | LIBIPROUTE_AR:=libiproute.a |
21 | ifndef $(LIBIPROUTE_DIR) | 9 | ifndef $(LIBIPROUTE_DIR) |
22 | LIBIPROUTE_DIR:=$(top_builddir)/networking/libiproute/ | 10 | LIBIPROUTE_DIR:=$(top_builddir)/networking/libiproute |
23 | endif | 11 | endif |
24 | srcdir=$(top_srcdir)/networking/libiproute | 12 | srcdir=$(top_srcdir)/networking/libiproute |
25 | 13 | ||
14 | LIBIPROUTE-y:= | ||
26 | LIBIPROUTE-$(CONFIG_IP) += \ | 15 | LIBIPROUTE-$(CONFIG_IP) += \ |
27 | ip_parse_common_args.o \ | 16 | ip_parse_common_args.o \ |
28 | ipaddress.o \ | 17 | ipaddress.o \ |
@@ -74,11 +63,31 @@ LIBIPROUTE-$(CONFIG_IPTUNNEL) += \ | |||
74 | rt_names.o \ | 63 | rt_names.o \ |
75 | utils.o | 64 | utils.o |
76 | 65 | ||
77 | libraries-y+=$(LIBIPROUTE_DIR)$(LIBIPROUTE_AR) | 66 | LIBIPROUTE-y:=$(sort $(LIBIPROUTE-y)) |
67 | |||
68 | LIBIPROUTE_SRC-y:=$(patsubst %,$(srcdir)/%,$(subst .o,.c,$(LIBIPROUTE-y))) | ||
69 | LIBIPROUTE_SRC-a:=$(wildcard $(srcdir)/*.c) | ||
70 | LIBRARY_SRC-y+=$(LIBIPROUTE_SRC-y) | ||
71 | LIBRARY_SRC-a+=$(LIBIPROUTE_SRC-a) | ||
72 | |||
73 | LIBIPROUTE-obj:=$(LIBIPROUTE_DIR)/$(LIBIPROUTE_AR) | ||
74 | |||
75 | # We do not need to build an empty non-pic object/archive | ||
76 | ifneq ($(strip $(LIBIPROUTE-y)),) | ||
77 | libraries-y+=$(LIBIPROUTE_DIR)/$(LIBIPROUTE_AR) | ||
78 | endif | ||
79 | |||
80 | # If we are building libbusybox.so _and_ we will use it ourselves then we | ||
81 | # keep it as small as possible | ||
82 | ifeq ($(strip $(CONFIG_FEATURE_SHARED_BUSYBOX)),y) | ||
83 | ifneq ($(strip $(LIBIPROUTE-y)),) | ||
84 | libraries-m+=$(LIBIPROUTE-multi-pic) | ||
85 | endif | ||
86 | endif | ||
78 | 87 | ||
79 | $(LIBIPROUTE_DIR)$(LIBIPROUTE_AR): $(patsubst %,$(LIBIPROUTE_DIR)%, $(LIBIPROUTE-y)) | 88 | $(LIBIPROUTE_DIR)/$(LIBIPROUTE_AR): $(patsubst %,$(LIBIPROUTE_DIR)/%,$(LIBIPROUTE-y)) |
80 | $(AR) $(ARFLAGS) $@ $(patsubst %,$(LIBIPROUTE_DIR)%, $(LIBIPROUTE-y)) | 89 | $(AR) $(ARFLAGS) $@ $(^) |
81 | 90 | ||
82 | $(LIBIPROUTE_DIR)%.o: $(srcdir)/%.c | 91 | $(LIBIPROUTE_DIR)/%.o: $(srcdir)/%.c |
83 | $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $< | 92 | $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $< |
84 | 93 | ||
diff --git a/networking/udhcp/Makefile.in b/networking/udhcp/Makefile.in index ac9be5c57..8573a2fc4 100644 --- a/networking/udhcp/Makefile.in +++ b/networking/udhcp/Makefile.in | |||
@@ -2,19 +2,7 @@ | |||
2 | # | 2 | # |
3 | # Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org> | 3 | # Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org> |
4 | # | 4 | # |
5 | # This program is free software; you can redistribute it and/or modify | 5 | # Licensed under the GPL v2 or later, see the file LICENSE in this tarball. |
6 | # it under the terms of the GNU General Public License as published by | ||
7 | # the Free Software Foundation; either version 2 of the License, or | ||
8 | # (at your option) any later version. | ||
9 | # | ||
10 | # This program is distributed in the hope that it will be useful, | ||
11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
13 | # General Public License for more details. | ||
14 | # | ||
15 | # You should have received a copy of the GNU General Public License | ||
16 | # along with this program; if not, write to the Free Software | ||
17 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
18 | # | 6 | # |
19 | 7 | ||
20 | UDHCP_AR:=udhcp.a | 8 | UDHCP_AR:=udhcp.a |
@@ -24,10 +12,10 @@ endif | |||
24 | srcdir=$(top_srcdir)/networking/udhcp | 12 | srcdir=$(top_srcdir)/networking/udhcp |
25 | 13 | ||
26 | #ok, so I forgot how to do an or, but this is a quick and dirty hack | 14 | #ok, so I forgot how to do an or, but this is a quick and dirty hack |
27 | ifeq ($(CONFIG_UDHCPC), y) | 15 | ifeq ($(strip $(CONFIG_UDHCPC)),y) |
28 | CONFIG_UDHCP_SHARED=y | 16 | CONFIG_UDHCP_SHARED=y |
29 | else | 17 | else |
30 | ifeq ($(CONFIG_UDHCPD), y) | 18 | ifeq ($(strip $(CONFIG_UDHCPD)),y) |
31 | CONFIG_UDHCP_SHARED=y | 19 | CONFIG_UDHCP_SHARED=y |
32 | else | 20 | else |
33 | CONFIG_UDHCP_SHARED=n | 21 | CONFIG_UDHCP_SHARED=n |
@@ -42,10 +30,20 @@ UDHCP-$(CONFIG_UDHCPC) += dhcpc.c clientpacket.c clientsocket.c \ | |||
42 | UDHCP-$(CONFIG_UDHCPD) += dhcpd.c arpping.c files.c leases.c \ | 30 | UDHCP-$(CONFIG_UDHCPD) += dhcpd.c arpping.c files.c leases.c \ |
43 | serverpacket.c static_leases.c | 31 | serverpacket.c static_leases.c |
44 | UDHCP-$(CONFIG_DUMPLEASES) += dumpleases.c | 32 | UDHCP-$(CONFIG_DUMPLEASES) += dumpleases.c |
45 | UDHCP_OBJS=$(patsubst %.c,$(UDHCP_DIR)%.o, $(UDHCP-y)) | 33 | UDHCP_OBJS:=$(patsubst %.c,$(UDHCP_DIR)%.o, $(UDHCP-y)) |
46 | 34 | ||
47 | libraries-y+=$(UDHCP_DIR)$(UDHCP_AR) | 35 | libraries-y+=$(UDHCP_DIR)$(UDHCP_AR) |
48 | 36 | ||
37 | UDHCP-y:=$(patsubst %,$(srcdir)/%,$(UDHCP-y)) | ||
38 | UDHCP-a:=$(wildcard $(srcdir)/*.c) | ||
39 | APPLET_SRC-y+=$(UDHCP-y) | ||
40 | APPLET_SRC-a+=$(UDHCP-a) | ||
41 | |||
42 | UDHCP_INCLUDES:=$(srcdir) | ||
43 | |||
44 | APPLETS_DEFINE-y+=-DIN_BUSYBOX -I$(UDHCP_INCLUDES) | ||
45 | APPLETS_DEFINE-a+=-DIN_BUSYBOX -I$(UDHCP_INCLUDES) | ||
46 | |||
49 | $(UDHCP_DIR)$(UDHCP_AR): $(UDHCP_OBJS) | 47 | $(UDHCP_DIR)$(UDHCP_AR): $(UDHCP_OBJS) |
50 | $(AR) $(ARFLAGS) $@ $(UDHCP_OBJS) | 48 | $(AR) $(ARFLAGS) $@ $(UDHCP_OBJS) |
51 | 49 | ||
diff --git a/procps/Makefile.in b/procps/Makefile.in index 782944e8f..b7eb7dca1 100644 --- a/procps/Makefile.in +++ b/procps/Makefile.in | |||
@@ -23,6 +23,11 @@ PROCPS-$(CONFIG_FUSER) += fuser.o | |||
23 | 23 | ||
24 | libraries-y+=$(PROCPS_DIR)$(PROCPS_AR) | 24 | libraries-y+=$(PROCPS_DIR)$(PROCPS_AR) |
25 | 25 | ||
26 | PROCPS_SRC-y:=$(patsubst %.o,$(srcdir)/%.c,$(PROCPS-y)) | ||
27 | PROCPS_SRC-a:=$(wildcard $(srcdir)/*.c) | ||
28 | APPLET_SRC-y+=$(PROCPS_SRC-y) | ||
29 | APPLET_SRC-a+=$(PROCPS_SRC-a) | ||
30 | |||
26 | $(PROCPS_DIR)$(PROCPS_AR): $(patsubst %,$(PROCPS_DIR)%, $(PROCPS-y)) | 31 | $(PROCPS_DIR)$(PROCPS_AR): $(patsubst %,$(PROCPS_DIR)%, $(PROCPS-y)) |
27 | $(AR) $(ARFLAGS) $@ $(patsubst %,$(PROCPS_DIR)%, $(PROCPS-y)) | 32 | $(AR) $(ARFLAGS) $@ $(patsubst %,$(PROCPS_DIR)%, $(PROCPS-y)) |
28 | 33 | ||
diff --git a/shell/Makefile.in b/shell/Makefile.in index db01a152a..f61f90a1a 100644 --- a/shell/Makefile.in +++ b/shell/Makefile.in | |||
@@ -19,6 +19,11 @@ SHELLT-$(CONFIG_FEATURE_COMMAND_EDITING) += cmdedit.o | |||
19 | 19 | ||
20 | libraries-y+=$(SHELL_DIR)$(SHELL_AR) | 20 | libraries-y+=$(SHELL_DIR)$(SHELL_AR) |
21 | 21 | ||
22 | SHELLT_SRC-y:=$(patsubst %.o,$(srcdir)/%.c,$(SHELLT-y)) | ||
23 | SHELLT_SRC-a:=$(wildcard $(srcdir)/*.c) | ||
24 | APPLET_SRC-y+=$(SHELLT_SRC-y) | ||
25 | APPLET_SRC-a+=$(SHELLT_SRC-a) | ||
26 | |||
22 | $(SHELL_DIR)$(SHELL_AR): $(patsubst %,$(SHELL_DIR)%, $(SHELLT-y)) | 27 | $(SHELL_DIR)$(SHELL_AR): $(patsubst %,$(SHELL_DIR)%, $(SHELLT-y)) |
23 | $(AR) $(ARFLAGS) $@ $(patsubst %,$(SHELL_DIR)%, $(SHELLT-y)) | 28 | $(AR) $(ARFLAGS) $@ $(patsubst %,$(SHELL_DIR)%, $(SHELLT-y)) |
24 | 29 | ||
diff --git a/sysdeps/linux/Config.in b/sysdeps/linux/Config.in index 3501ff767..1b87c1251 100644 --- a/sysdeps/linux/Config.in +++ b/sysdeps/linux/Config.in | |||
@@ -164,6 +164,35 @@ config CONFIG_STATIC | |||
164 | 164 | ||
165 | Most people will leave this set to 'N'. | 165 | Most people will leave this set to 'N'. |
166 | 166 | ||
167 | config CONFIG_BUILD_LIBBUSYBOX | ||
168 | bool "Build shared libbusybox" | ||
169 | default y | ||
170 | help | ||
171 | Build a shared library libbusybox.so which contains all | ||
172 | libraries used inside busybox. | ||
173 | |||
174 | config CONFIG_FEATURE_FULL_LIBBUSYBOX | ||
175 | bool "Feature-complete libbusybox" | ||
176 | default n if !CONFIG_FEATURE_SHARED_BUSYBOX | ||
177 | depends on CONFIG_BUILD_LIBBUSYBOX | ||
178 | help | ||
179 | Build a libbusybox with the complete feature-set, disregarding | ||
180 | the actually selected config. | ||
181 | |||
182 | Normally, libbusybox will only contain the features which are | ||
183 | used by busybox itself. If you plan to write a separate | ||
184 | standalone application which uses libbusybox say 'Y'. | ||
185 | |||
186 | Say 'N' if in doubt. | ||
187 | |||
188 | config CONFIG_FEATURE_SHARED_BUSYBOX | ||
189 | bool "Use shared libbusybox for busybox" | ||
190 | default y if CONFIG_BUILD_LIBBUSYBOX | ||
191 | depends on !CONFIG_STATIC && CONFIG_BUILD_LIBBUSYBOX | ||
192 | help | ||
193 | Use libbusybox.so also for busybox itself. | ||
194 | You need to have a working dynamic linker to use this variant. | ||
195 | |||
167 | config CONFIG_LFS | 196 | config CONFIG_LFS |
168 | bool "Build with Large File Support (for accessing files > 2 GB)" | 197 | bool "Build with Large File Support (for accessing files > 2 GB)" |
169 | default n | 198 | default n |
@@ -203,6 +232,25 @@ config EXTRA_CFLAGS_OPTIONS | |||
203 | if you want to add some simple compiler switches (like -march=i686), | 232 | if you want to add some simple compiler switches (like -march=i686), |
204 | or check for warnings using -Werror, just those options here. | 233 | or check for warnings using -Werror, just those options here. |
205 | 234 | ||
235 | config CONFIG_BUILD_AT_ONCE | ||
236 | bool "Compile all sources at once" | ||
237 | default n | ||
238 | help | ||
239 | Normally each source-file is compiled with one invocation of | ||
240 | the compiler. | ||
241 | If you set this option, all sources are compiled at once. | ||
242 | This gives the compiler more opportunities to optimize which can | ||
243 | result in smaller and/or faster binaries. | ||
244 | |||
245 | Setting this option will consume alot of memory, e.g. if you | ||
246 | enable all applets with all features, gcc uses more than 300MB | ||
247 | RAM during compilation of busybox. | ||
248 | |||
249 | This option is most likely only beneficial for newer compilers | ||
250 | such as gcc-4.1 and above. | ||
251 | |||
252 | Say 'N' unless you know what you are doing. | ||
253 | |||
206 | config CONFIG_FEATURE_SUSv2 | 254 | config CONFIG_FEATURE_SUSv2 |
207 | bool "Enable features that are in SuSv2 but not SuSv3?" | 255 | bool "Enable features that are in SuSv2 but not SuSv3?" |
208 | default y | 256 | default y |
@@ -216,7 +264,9 @@ config CONFIG_FEATURE_SUSv2_OBSOLETE | |||
216 | depends on CONFIG_FEATURE_SUSv2 | 264 | depends on CONFIG_FEATURE_SUSv2 |
217 | default y | 265 | default y |
218 | help | 266 | help |
219 | Disables support for numeric arguments in fold. | 267 | Enable pre- SuSv2 features which are deprecated in SuSv2 and |
268 | above. | ||
269 | Disables support for e.g. numeric arguments in fold. | ||
220 | 270 | ||
221 | endmenu | 271 | endmenu |
222 | 272 | ||
@@ -264,26 +314,24 @@ config PREFIX | |||
264 | help | 314 | help |
265 | Define your directory to install BusyBox files/subdirs in. | 315 | Define your directory to install BusyBox files/subdirs in. |
266 | 316 | ||
267 | |||
268 | |||
269 | endmenu | 317 | endmenu |
270 | 318 | ||
271 | source archival/Config.in | 319 | source archival/Config.in |
272 | source coreutils/Config.in | 320 | source coreutils/Config.in |
273 | source console-tools/Config.in | 321 | source console-tools/Config.in |
274 | source debianutils/Config.in | 322 | source debianutils/Config.in |
275 | source e2fsprogs/Config.in | ||
276 | source editors/Config.in | 323 | source editors/Config.in |
277 | source findutils/Config.in | 324 | source findutils/Config.in |
278 | source init/Config.in | 325 | source init/Config.in |
279 | source loginutils/Config.in | 326 | source loginutils/Config.in |
280 | source miscutils/Config.in | 327 | source e2fsprogs/Config.in |
281 | source modutils/Config.in | 328 | source modutils/Config.in |
329 | source util-linux/Config.in | ||
330 | source miscutils/Config.in | ||
282 | source networking/Config.in | 331 | source networking/Config.in |
283 | source procps/Config.in | 332 | source procps/Config.in |
284 | source shell/Config.in | 333 | source shell/Config.in |
285 | source sysklogd/Config.in | 334 | source sysklogd/Config.in |
286 | source util-linux/Config.in | ||
287 | 335 | ||
288 | menu 'Debugging Options' | 336 | menu 'Debugging Options' |
289 | 337 | ||
diff --git a/sysklogd/Makefile.in b/sysklogd/Makefile.in index e6d47f6b5..2b913f784 100644 --- a/sysklogd/Makefile.in +++ b/sysklogd/Makefile.in | |||
@@ -18,6 +18,11 @@ SYSKLOGD-$(CONFIG_SYSLOGD) += syslogd.o | |||
18 | 18 | ||
19 | libraries-y+=$(SYSKLOGD_DIR)$(SYSKLOGD_AR) | 19 | libraries-y+=$(SYSKLOGD_DIR)$(SYSKLOGD_AR) |
20 | 20 | ||
21 | SYSKLOGD_SRC-y:=$(patsubst %.o,$(srcdir)/%.c,$(SYSKLOGD-y)) | ||
22 | SYSKLOGD_SRC-a:=$(wildcard $(srcdir)/*.c) | ||
23 | APPLET_SRC-y+=$(SYSKLOGD_SRC-y) | ||
24 | APPLET_SRC-a+=$(SYSKLOGD_SRC-a) | ||
25 | |||
21 | $(SYSKLOGD_DIR)$(SYSKLOGD_AR): $(patsubst %,$(SYSKLOGD_DIR)%, $(SYSKLOGD-y)) | 26 | $(SYSKLOGD_DIR)$(SYSKLOGD_AR): $(patsubst %,$(SYSKLOGD_DIR)%, $(SYSKLOGD-y)) |
22 | $(AR) $(ARFLAGS) $@ $(patsubst %,$(SYSKLOGD_DIR)%, $(SYSKLOGD-y)) | 27 | $(AR) $(ARFLAGS) $@ $(patsubst %,$(SYSKLOGD_DIR)%, $(SYSKLOGD-y)) |
23 | 28 | ||
diff --git a/util-linux/Makefile.in b/util-linux/Makefile.in index 176930246..de7e210ba 100644 --- a/util-linux/Makefile.in +++ b/util-linux/Makefile.in | |||
@@ -37,8 +37,14 @@ UTILLINUX-$(CONFIG_SWAPONOFF) +=swaponoff.o | |||
37 | UTILLINUX-$(CONFIG_SWITCH_ROOT) +=switch_root.o | 37 | UTILLINUX-$(CONFIG_SWITCH_ROOT) +=switch_root.o |
38 | UTILLINUX-$(CONFIG_UMOUNT) +=umount.o | 38 | UTILLINUX-$(CONFIG_UMOUNT) +=umount.o |
39 | 39 | ||
40 | |||
40 | libraries-y+=$(UTILLINUX_DIR)$(UTILLINUX_AR) | 41 | libraries-y+=$(UTILLINUX_DIR)$(UTILLINUX_AR) |
41 | 42 | ||
43 | UTILLINUX_SRC-y:=$(patsubst %.o,$(srcdir)/%.c,$(UTILLINUX-y)) | ||
44 | UTILLINUX_SRC-a:=$(wildcard $(srcdir)/*.c) | ||
45 | APPLET_SRC-y+=$(UTILLINUX_SRC-y) | ||
46 | APPLET_SRC-a+=$(UTILLINUX_SRC-a) | ||
47 | |||
42 | $(UTILLINUX_DIR)$(UTILLINUX_AR): $(patsubst %,$(UTILLINUX_DIR)%, $(UTILLINUX-y)) | 48 | $(UTILLINUX_DIR)$(UTILLINUX_AR): $(patsubst %,$(UTILLINUX_DIR)%, $(UTILLINUX-y)) |
43 | $(AR) $(ARFLAGS) $@ $(patsubst %,$(UTILLINUX_DIR)%, $(UTILLINUX-y)) | 49 | $(AR) $(ARFLAGS) $@ $(patsubst %,$(UTILLINUX_DIR)%, $(UTILLINUX-y)) |
44 | 50 | ||