aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2001-10-24 05:00:29 +0000
committerEric Andersen <andersen@codepoet.org>2001-10-24 05:00:29 +0000
commitbdfd0d78bc44e73d693510e70087857785b3b521 (patch)
tree153a573095afac8d8d0ea857759ecabd77fb28b7 /Makefile
parent9260fc5552a3ee52eb95823aa6689d52a1ffd33c (diff)
downloadbusybox-w32-bdfd0d78bc44e73d693510e70087857785b3b521.tar.gz
busybox-w32-bdfd0d78bc44e73d693510e70087857785b3b521.tar.bz2
busybox-w32-bdfd0d78bc44e73d693510e70087857785b3b521.zip
Major rework of the directory structure and the entire build system.
-Erik
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile311
1 files changed, 130 insertions, 181 deletions
diff --git a/Makefile b/Makefile
index 3cabc7afa..c8337801f 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
1# Makefile for busybox 1# Makefile for busybox
2# 2#
3# Copyright (C) 1999,2000,2001 Erik Andersen <andersee@debian.org> 3# Copyright (C) 1999,2000,2001 by Erik Andersen <andersee@debian.org>
4# 4#
5# This program is free software; you can redistribute it and/or modify 5# This program is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by 6# it under the terms of the GNU General Public License as published by
@@ -20,12 +20,19 @@
20PROG := busybox 20PROG := busybox
21VERSION := 0.61.pre 21VERSION := 0.61.pre
22BUILDTIME := $(shell TZ=UTC date -u "+%Y.%m.%d-%H:%M%z") 22BUILDTIME := $(shell TZ=UTC date -u "+%Y.%m.%d-%H:%M%z")
23export VERSION 23TOPDIR := ${shell /bin/pwd}
24HOSTCC := gcc
25HOSTCFLAGS:= -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer
26
27
28# What OS are you compiling busybox for? This allows you to include
29# OS specific things, syscall overrides, etc.
30TARGET_OS := linux
24 31
25# With a modern GNU make(1) (highly recommended, that's what all the 32# With a modern GNU make(1) (highly recommended, that's what all the
26# developers use), all of the following configuration values can be 33# developers use), all of the following configuration values can be
27# overridden at the command line. For example: 34# overridden at the command line. For example:
28# make CROSS=powerpc-linux- BB_SRC_DIR=$HOME/busybox PREFIX=/mnt/app 35# make CROSS=powerpc-linux- CONFIG_SRC_DIR=$HOME/busybox PREFIX=/mnt/app
29 36
30# If you want to add some simple compiler switches (like -march=i686), 37# If you want to add some simple compiler switches (like -march=i686),
31# especially from the command line, use this instead of CFLAGS directly. 38# especially from the command line, use this instead of CFLAGS directly.
@@ -39,18 +46,6 @@ DOSTATIC = false
39# Leave this set to `false' for production use. 46# Leave this set to `false' for production use.
40DODEBUG = false 47DODEBUG = false
41 48
42# Setting this to `true' will cause busybox to directly use the system's
43# password and group functions. Assuming you use GNU libc, when this is
44# `true', you will need to install the /etc/nsswitch.conf configuration file
45# and the required libnss_* libraries. This generally makes your embedded
46# system quite a bit larger... If you leave this off, busybox will directly use
47# the /etc/password, /etc/group files (and your system will be smaller, and I
48# will get fewer emails asking about how glibc NSS works). Enabling this adds
49# just 1.4k to the binary size (which is a _lot_ less then glibc NSS costs).
50# Note that if you want hostname resolution to work with glibc, you still need
51# the libnss_* libraries.
52USE_SYSTEM_PWD_GRP = true
53
54# This enables compiling with dmalloc ( http://dmalloc.com/ ) 49# This enables compiling with dmalloc ( http://dmalloc.com/ )
55# which is an excellent public domain mem leak and malloc problem 50# which is an excellent public domain mem leak and malloc problem
56# detector. To enable dmalloc, before running busybox you will 51# detector. To enable dmalloc, before running busybox you will
@@ -72,17 +67,24 @@ DOEFENCE = false
72# larger than 2GB! 67# larger than 2GB!
73DOLFS = false 68DOLFS = false
74 69
75# If you have a "pristine" source directory, point BB_SRC_DIR to it. 70# If you have a "pristine" source directory, point CONFIG_SRC_DIR to it.
76# Experimental and incomplete; tell the mailing list 71# Experimental and incomplete; tell the mailing list
77# <busybox@opensource.lineo.com> if you do or don't like it so far. 72# <busybox@opensource.lineo.com> if you do or don't like it so far.
78BB_SRC_DIR = 73CONFIG_SRC_DIR =
79 74
80# If you are running a cross compiler, you may want to set this 75# If you are running a cross compiler, you may want to set CROSS
81# to something more interesting, like "powerpc-linux-". 76# to something more interesting, like "arm-linux-".
82CROSS = 77CROSS =
83CC = $(CROSS)gcc 78CC = $(CROSS)gcc
84AR = $(CROSS)ar 79AR = $(CROSS)ar
85STRIPTOOL = $(CROSS)strip 80AS = $(CROSS)as
81LD = $(CROSS)ld
82NM = $(CROSS)nm
83STRIP = $(CROSS)strip
84CPP = $(CC) -E
85MAKEFILES = $(TOPDIR)/.config
86export VERSION BUILDTIME TOPDIR HOSTCC HOSTCFLAGS CROSS CC AR AS LD NM STRIP CPP
87
86 88
87# To compile vs uClibc, just use the compiler wrapper built by uClibc... 89# To compile vs uClibc, just use the compiler wrapper built by uClibc...
88# Everything should compile and work as expected these days... 90# Everything should compile and work as expected these days...
@@ -107,10 +109,11 @@ STRIPTOOL = $(CROSS)strip
107#GCCINCDIR = $(shell gcc -print-search-dirs | sed -ne "s/install: \(.*\)/\1include/gp") 109#GCCINCDIR = $(shell gcc -print-search-dirs | sed -ne "s/install: \(.*\)/\1include/gp")
108 110
109# use '-Os' optimization if available, else use -O2 111# use '-Os' optimization if available, else use -O2
110OPTIMIZATION := $(shell if $(CC) -Os -S -o /dev/null -xc /dev/null >/dev/null 2>&1; \ 112OPTIMIZATION := ${shell if $(CC) -Os -S -o /dev/null -xc /dev/null \
111 then echo "-Os"; else echo "-O2" ; fi) 113 >/dev/null 2>&1; then echo "-Os"; else echo "-O2" ; fi}
112 114
113WARNINGS=-Wall -Wstrict-prototypes -Wshadow 115WARNINGS=-Wall -Wstrict-prototypes -Wshadow
116CFLAGS = -I $(TOPDIR)/include -I $(TOPDIR)/busybox
114ARFLAGS = -r 117ARFLAGS = -r
115 118
116# 119#
@@ -142,25 +145,14 @@ endif
142ifeq ($(strip $(DODEBUG)),true) 145ifeq ($(strip $(DODEBUG)),true)
143 CFLAGS += $(WARNINGS) -g -D_GNU_SOURCE 146 CFLAGS += $(WARNINGS) -g -D_GNU_SOURCE
144 LDFLAGS += -Wl,-warn-common 147 LDFLAGS += -Wl,-warn-common
145 STRIP = 148 STRIPCMD =
146else 149else
147 CFLAGS += $(WARNINGS) $(OPTIMIZATION) -fomit-frame-pointer -D_GNU_SOURCE 150 CFLAGS += $(WARNINGS) $(OPTIMIZATION) -fomit-frame-pointer -D_GNU_SOURCE
148 LDFLAGS += -s -Wl,-warn-common 151 LDFLAGS += -s -Wl,-warn-common
149 STRIP = $(STRIPTOOL) --remove-section=.note --remove-section=.comment $(PROG) 152 STRIPCMD = $(STRIP) --remove-section=.note --remove-section=.comment $(PROG)
150endif 153endif
151ifeq ($(strip $(DOSTATIC)),true) 154ifeq ($(strip $(DOSTATIC)),true)
152 LDFLAGS += --static 155 LDFLAGS += --static
153 #
154 #use '-ffunction-sections -fdata-sections' and '--gc-sections' (if they
155 # work) to try and strip out any unused junk. Doesn't do much for me,
156 # but you may want to give it a shot...
157 #
158 #ifeq ($(shell $(CC) -ffunction-sections -fdata-sections -S \
159 # -o /dev/null -xc /dev/null 2>/dev/null && $(LD) \
160 # --gc-sections -v >/dev/null && echo 1),1)
161 # CFLAGS += -ffunction-sections -fdata-sections
162 # LDFLAGS += --gc-sections
163 #endif
164endif 156endif
165 157
166ifndef $(PREFIX) 158ifndef $(PREFIX)
@@ -169,125 +161,77 @@ endif
169 161
170# Additional complications due to support for pristine source dir. 162# Additional complications due to support for pristine source dir.
171# Include files in the build directory should take precedence over 163# Include files in the build directory should take precedence over
172# the copy in BB_SRC_DIR, both during the compilation phase and the 164# the copy in CONFIG_SRC_DIR, both during the compilation phase and the
173# shell script that finds the list of object files. 165# shell script that finds the list of object files.
174# Work in progress by <ldoolitt@recycle.lbl.gov>. 166# Work in progress by <ldoolitt@recycle.lbl.gov>.
175# 167#
176ifneq ($(strip $(BB_SRC_DIR)),) 168ifneq ($(strip $(CONFIG_SRC_DIR)),)
177 VPATH = $(BB_SRC_DIR) 169 VPATH = $(CONFIG_SRC_DIR)
178endif 170endif
179#ifneq ($(strip $(VPATH)),)
180# CFLAGS += -I- -I. $(patsubst %,-I%,$(subst :, ,$(VPATH)))
181#endif
182
183# We need to set APPLET_SOURCES to something like
184# $(shell busybox.sh Config.h)
185# but in a manner that works with VPATH and BB_SRC_DIR.
186# Possible ways to approach this:
187#
188# 1. Explicitly search through .:$(VPATH) for busybox.sh and config.h,
189# then $(shell $(BUSYBOX_SH) $(CONFIG_H) $(BB_SRC_DIR))
190#
191# 2. Explicity search through .:$(VPATH) for slist.mk,
192# then $(shell $(MAKE) -f $(SLIST_MK) VPATH=$(VPATH) BB_SRC_DIR=$(BB_SRC_DIR))
193#
194# 3. Create slist.mk in this directory, with commands embedded in
195# a $(shell ...) command, and $(MAKE) it immediately.
196#
197# 4. Use a real rule within this makefile to create a file that sets
198# APPLET_SOURCE_LIST, then include that file. Has complications
199# with the first trip through the makefile (before processing the
200# include) trying to do too much, and a spurious warning the first
201# time make is run.
202#
203# This is option 3:
204#
205#APPLET_SOURCES = $(shell \
206# echo -e 'all: busybox.sh Config.h\n\t@ $$(SHELL) $$^ $$(BB_SRC_DIR)' >slist.mk; \
207# make -f slist.mk VPATH=$(VPATH) BB_SRC_DIR=$(BB_SRC_DIR) \
208#)
209# And option 4:
210-include applet_source_list
211 171
212OBJECTS = $(APPLET_SOURCES:.c=.o) busybox.o usage.o applets.o 172OBJECTS = $(APPLET_SOURCES:.c=.o) busybox.o usage.o applets.o
213CFLAGS += $(CROSS_CFLAGS) 173CFLAGS += $(CROSS_CFLAGS)
214CFLAGS += -DBB_VER='"$(VERSION)"' 174ifdef CONFIG_INIT_SCRIPT
215CFLAGS += -DBB_BT='"$(BUILDTIME)"' 175 CFLAGS += -DINIT_SCRIPT='"$(CONFIG_INIT_SCRIPT)"'
216ifdef BB_INIT_SCRIPT
217 CFLAGS += -DINIT_SCRIPT='"$(BB_INIT_SCRIPT)"'
218endif 176endif
219 177
220ifneq ($(strip $(USE_SYSTEM_PWD_GRP)),true) 178# Put user-supplied flags at the end, where they
221 PWD_GRP = pwd_grp 179# have a chance of winning.
222 PWD_GRP_DIR = $(BB_SRC_DIR:=/)$(PWD_GRP) 180CFLAGS += $(CFLAGS_EXTRA)
223 PWD_LIB = libpwd.a 181
224 PWD_CSRC=__getpwent.c pwent.c getpwnam.c getpwuid.c putpwent.c getpw.c \ 182.EXPORT_ALL_VARIABLES:
225 fgetpwent.c __getgrent.c grent.c getgrnam.c getgrgid.c fgetgrent.c \ 183
226 initgroups.c setgroups.c 184all: do-it-all
227 PWD_OBJS=$(patsubst %.c,$(PWD_GRP)/%.o, $(PWD_CSRC)) 185
228ifneq ($(strip $(BB_SRC_DIR)),) 186#
229 PWD_CFLAGS = -I- -I. 187# Make "config" the default target if there is no configuration file or
230endif 188# "depend" the target if there is no top-level dependency information.
231 PWD_CFLAGS += -I$(PWD_GRP_DIR) 189ifeq (.config,$(wildcard .config))
190include .config
191ifeq (.depend,$(wildcard .depend))
192include .depend
193do-it-all: busybox busybox.links doc
232else 194else
233 CFLAGS += -DUSE_SYSTEM_PWD_GRP 195CONFIGURATION = depend
196do-it-all: depend
234endif 197endif
235
236LIBBB = libbb
237LIBBB_LIB = libbb.a
238LIBBB_CSRC= ask_confirmation.c chomp.c concat_path_file.c copy_file.c \
239copy_file_chunk.c libc5.c device_open.c error_msg.c \
240error_msg_and_die.c fgets_str.c find_mount_point.c find_pid_by_name.c \
241find_root_device.c full_read.c full_write.c get_console.c \
242get_last_path_component.c get_line_from_file.c gz_open.c human_readable.c \
243isdirectory.c kernel_version.c loop.c mode_string.c module_syscalls.c mtab.c \
244mtab_file.c my_getgrnam.c my_getgrgid.c my_getpwnam.c my_getpwnamegid.c \
245my_getpwuid.c parse_mode.c parse_number.c perror_msg.c perror_msg_and_die.c \
246print_file.c process_escape_sequence.c read_package_field.c recursive_action.c \
247safe_read.c safe_strncpy.c syscalls.c syslog_msg_with_name.c time_string.c \
248trim.c unzip.c vdprintf.c verror_msg.c vperror_msg.c wfopen.c xfuncs.c \
249xgetcwd.c xreadlink.c xregcomp.c interface.c remove_file.c last_char_is.c \
250copyfd.c vherror_msg.c herror_msg.c herror_msg_and_die.c xgethostbyname.c \
251dirname.c make_directory.c create_icmp_socket.c u_signal_names.c arith.c \
252simplify_path.c
253LIBBB_OBJS=$(patsubst %.c,$(LIBBB)/%.o, $(LIBBB_CSRC))
254ifeq ($(strip $(BB_SRC_DIR)),)
255 LIBBB_CFLAGS += -I$(LIBBB)
256else 198else
257 LIBBB_CFLAGS = -I- -I. -I./$(LIBBB) -I$(BB_SRC_DIR)/$(LIBBB) -I$(BB_SRC_DIR) 199CONFIGURATION = menuconfig
200do-it-all: menuconfig
258endif 201endif
259 202
260LIBBB_MSRC=libbb/messages.c 203SUBDIRS =applets archival console-tools editors fileutils findutils init \
261LIBBB_MESSAGES= full_version name_too_long omitting_directory not_a_directory \ 204 miscutils modutils networking pwd_grp shell shellutils sysklogd \
262memory_exhausted invalid_date invalid_option io_error dash_dash_help \ 205 textutils tinylogin util-linux libbb
263write_error too_few_args name_longer_than_foo unknown can_not_create_raw_socket
264LIBBB_MOBJ=$(patsubst %,$(LIBBB)/%.o, $(LIBBB_MESSAGES))
265 206
266LIBBB_ARCSRC=libbb/unarchive.c 207bbsubdirs: $(patsubst %, _dir_%, $(SUBDIRS))
267LIBBB_ARCOBJ= archive_offset seek_sub_file extract_archive unarchive \
268get_header_ar get_header_cpio get_header_tar deb_extract
269LIBBB_AROBJS=$(patsubst %,$(LIBBB)/%.o, $(LIBBB_ARCOBJ))
270 208
209$(patsubst %, _dir_%, $(SUBDIRS)) : dummy include/config/MARKER
210 $(MAKE) CFLAGS="$(CFLAGS)" -C $(patsubst _dir_%, %, $@)
271 211
272# Put user-supplied flags at the end, where they 212busybox: bbsubdirs
273# have a chance of winning. 213 $(CC) $(LDFLAGS) -o $@ $(shell find $(SUBDIRS) -name \*.a) $(LIBCONFIG_LIB) $(LIBRARIES)
274CFLAGS += $(CFLAGS_EXTRA) 214 $(STRIPCMD)
275 215
276.EXPORT_ALL_VARIABLES: 216busybox.links: applets/busybox.mkll
217 - $(SHELL) $^ >$@
218
219install: applets/install.sh busybox busybox.links
220 $(SHELL) $< $(PREFIX)
277 221
278all: applet_source_list busybox busybox.links doc 222install-hardlinks: applets/install.sh busybox busybox.links
223 $(SHELL) $< $(PREFIX) --hardlinks
279 224
280applet_source_list: busybox.sh Config.h
281 (echo -n "APPLET_SOURCES := "; CC="$(CC)" BB_SRC_DIR="$(BB_SRC_DIR)" $(SHELL) $^) > $@
282 225
226# Documentation Targets
283doc: olddoc 227doc: olddoc
284 228
285# Old Docs... 229# Old Docs...
286olddoc: docs/busybox.pod docs/BusyBox.txt docs/BusyBox.1 docs/BusyBox.html 230olddoc: docs/busybox.pod docs/BusyBox.txt docs/BusyBox.1 docs/BusyBox.html
287 231
288docs/busybox.pod : docs/busybox_header.pod usage.h docs/busybox_footer.pod 232docs/busybox.pod : docs/busybox_header.pod applets/usage.h docs/busybox_footer.pod
289 - ( cat docs/busybox_header.pod; \ 233 - ( cat docs/busybox_header.pod; \
290 docs/autodocifier.pl usage.h; \ 234 docs/autodocifier.pl applets/usage.h; \
291 cat docs/busybox_footer.pod ) > docs/busybox.pod 235 cat docs/busybox_footer.pod ) > docs/busybox.pod
292 236
293docs/BusyBox.txt: docs/busybox.pod 237docs/BusyBox.txt: docs/busybox.pod
@@ -340,86 +284,89 @@ docs/busybox/busyboxdocumentation.html: docs/busybox.sgml
340 - mkdir -p docs 284 - mkdir -p docs
341 (cd docs/busybox.lineo.com; sgmltools -b html ../busybox.sgml) 285 (cd docs/busybox.lineo.com; sgmltools -b html ../busybox.sgml)
342 286
287# The nifty new buildsystem stuff
288scripts/mkdep: scripts/mkdep.c
289 $(HOSTCC) $(HOSTCFLAGS) -o scripts/mkdep scripts/mkdep.c
343 290
344busybox: $(PWD_LIB) $(LIBBB_LIB) $(OBJECTS) 291scripts/split-include: scripts/split-include.c
345 $(CC) $(LDFLAGS) -o $@ $(OBJECTS) $(LIBBB_LIB) $(PWD_LIB) $(LIBRARIES) 292 $(HOSTCC) $(HOSTCFLAGS) -o scripts/split-include scripts/split-include.c
346 $(STRIP)
347 293
348# Without VPATH, rule expands to "/bin/sh busybox.mkll Config.h applets.h" 294dep-files: scripts/mkdep #archdep
349# but with VPATH, some or all of those file names are resolved to the 295 rm -f .depend .hdepend
350# directories in which they live. 296 scripts/mkdep -I $(TOPDIR)/include -- `find $(TOPDIR) -name \*.c -print` >> .depend
351busybox.links: busybox.mkll Config.h applets.h 297 scripts/mkdep -I $(TOPDIR)/include -- `find $(TOPDIR) -name \*.h -print` >> .hdepend
352 - $(SHELL) $^ >$@ 298 $(MAKE) $(patsubst %,_sfdep_%,$(SUBDIRS)) _FASTDEP_ALL_SUB_DIRS="$(SUBDIRS)"
353 299
354nfsmount.o cmdedit.o: %.o: %.h 300depend dep: dep-files
355ash.o hush.o lash.o msh.o: cmdedit.h 301 @ echo -e "\n\nNow run 'make' to build BusyBox\n\n"
356$(OBJECTS): %.o: %.c Config.h busybox.h applets.h Makefile
357ifeq ($(strip $(BB_SRC_DIR)),)
358 $(CC) $(CFLAGS) -I. $(patsubst %,-I%,$(subst :, ,$(BB_SRC_DIR))) -c $< -o $*.o
359else
360 $(CC) $(CFLAGS) -I- -I. $(patsubst %,-I%,$(subst :, ,$(BB_SRC_DIR))) -c $< -o $*.o
361endif
362 302
363$(PWD_OBJS): %.o: %.c Config.h busybox.h applets.h Makefile 303CONFIG_SHELL := ${shell if [ -x "$$BASH" ]; then echo $$BASH; \
364 - mkdir -p $(PWD_GRP) 304 else if [ -x /bin/bash ]; then echo /bin/bash; \
365 $(CC) $(CFLAGS) $(PWD_CFLAGS) -c $< -o $*.o 305 else echo sh; fi ; fi}
366 306
367$(LIBBB_OBJS): %.o: %.c Config.h busybox.h applets.h Makefile libbb/libbb.h 307include/config/MARKER: scripts/split-include include/config.h
368 - mkdir -p $(LIBBB) 308 scripts/split-include include/config.h include/config
369 $(CC) $(CFLAGS) $(LIBBB_CFLAGS) -c $< -o $*.o 309 @ touch include/config/MARKER
370 310
371$(LIBBB_MOBJ): $(LIBBB_MSRC) 311menuconfig:
372 - mkdir -p $(LIBBB) 312 $(MAKE) -C scripts/lxdialog all
373 $(CC) $(CFLAGS) $(LIBBB_CFLAGS) -DL_$(patsubst libbb/%,%,$*) -c $< -o $*.o 313 $(CONFIG_SHELL) scripts/Menuconfig sysdeps/$(TARGET_OS)/config.in
374 314
375$(LIBBB_AROBJS): $(LIBBB_ARCSRC) 315config:
376 - mkdir -p $(LIBBB) 316 $(CONFIG_SHELL) scripts/Configure sysdeps/$(TARGET_OS)/config.in
377 $(CC) $(CFLAGS) $(LIBBB_CFLAGS) -DL_$(patsubst libbb/%,%,$*) -c $< -o $*.o
378 317
379libpwd.a: $(PWD_OBJS) 318oldconfig:
380 $(AR) $(ARFLAGS) $@ $^ 319 $(CONFIG_SHELL) scripts/Configure -d sysdeps/$(TARGET_OS)/config.in
381 320
382libbb.a: $(LIBBB_MOBJ) $(LIBBB_AROBJS) $(LIBBB_OBJS)
383 $(AR) $(ARFLAGS) $@ $^
384 321
385usage.o: usage.h 322ifdef CONFIGURATION
323..$(CONFIGURATION):
324 @echo
325 @echo "You have a bad or nonexistent" .$(CONFIGURATION) ": running 'make" $(CONFIGURATION)"'"
326 @echo
327 $(MAKE) $(CONFIGURATION)
328 @echo
329 @echo "Successful. Try re-making (ignore the error that follows)"
330 @echo
331 exit 1
386 332
387libbb/loop.o: libbb/loop.h 333dummy:
388 334
389libbb/loop.h: mk_loop_h.sh 335else
390 @ $(SHELL) $< > $@
391 336
337dummy:
338
339endif
340
341include Rules.mak
342
343# Testing...
392test tests: 344test tests:
393 # old way of doing it 345 # old way of doing it
394 #cd tests && $(MAKE) all 346 #cd tests && $(MAKE) all
395 # new way of doing it 347 # new way of doing it
396 cd tests && ./tester.sh 348 cd tests && ./tester.sh
397 349
350# Cleanup
398clean: 351clean:
399 - cd tests && $(MAKE) clean 352 - $(MAKE) -C tests clean
353 - $(MAKE) -C scripts/lxdialog clean
400 - rm -f docs/BusyBox.txt docs/BusyBox.1 docs/BusyBox.html \ 354 - rm -f docs/BusyBox.txt docs/BusyBox.1 docs/BusyBox.html \
401 docs/busybox.lineo.com/BusyBox.html 355 docs/busybox.lineo.com/BusyBox.html
402 - rm -f docs/busybox.txt docs/busybox.dvi docs/busybox.ps \ 356 - rm -f docs/busybox.txt docs/busybox.dvi docs/busybox.ps \
403 docs/busybox.pdf docs/busybox.lineo.com/busybox.html 357 docs/busybox.pdf docs/busybox.lineo.com/busybox.html \
404 - rm -f multibuild.log Config.h.orig *.gdb *.elf 358 docs/busybox _install pod2htm* *.gdb *.elf *~ core
405 - rm -rf docs/busybox _install libpwd.a libbb.a pod2htm* 359 - rm -f busybox.links libbb/loop.h .config.old .hdepend
406 - rm -f busybox.links libbb/loop.h *~ slist.mk core applet_source_list 360 - rm -f scripts/split-include scripts/mkdep .*config.log
361 - rm -rf include/config include/config.h
362 - find -name .\*.flags -o -name .depend -exec rm -f {} \;
407 - find -name \*.o -exec rm -f {} \; 363 - find -name \*.o -exec rm -f {} \;
364 - find -name \*.a -exec rm -f {} \;
408 365
409distclean: clean 366distclean: clean
410 - rm -f busybox applet_source_list 367 - rm -f busybox
411 - cd tests && $(MAKE) distclean 368 - cd tests && $(MAKE) distclean
412 369
413install: install.sh busybox busybox.links
414 $(SHELL) $< $(PREFIX)
415
416install-hardlinks: install.sh busybox busybox.links
417 $(SHELL) $< $(PREFIX) --hardlinks
418
419debug_pristine:
420 @ echo VPATH=\"$(VPATH)\"
421 @ echo OBJECTS=\"$(OBJECTS)\"
422
423dist release: distclean doc 370dist release: distclean doc
424 cd ..; \ 371 cd ..; \
425 rm -rf busybox-$(VERSION); \ 372 rm -rf busybox-$(VERSION); \
@@ -437,6 +384,8 @@ dist release: distclean doc
437 \ 384 \
438 tar -cvzf busybox-$(VERSION).tar.gz busybox-$(VERSION)/; 385 tar -cvzf busybox-$(VERSION).tar.gz busybox-$(VERSION)/;
439 386
387
388
440.PHONY: tags 389.PHONY: tags
441tags: 390tags:
442 ctags -R . 391 ctags -R .