3 # Copyright (C) 1999-2002 Erik Andersen <andersee@debian.org>
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
7 # the Free Software Foundation; either version 2 of the License, or
8 # (at your option) any later version.
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.
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
20 #--------------------------------------------------------------
21 # You shouldn't need to mess with anything beyond this point...
22 #--------------------------------------------------------------
23 noconfig_targets := menuconfig config oldconfig randconfig \
24 defconfig allyesconfig allnoconfig clean distclean \
29 DIRS:=applets archival archival/libunarchive coreutils console-tools \
30 debianutils editors findutils init miscutils modutils networking \
31 networking/libiproute networking/udhcp procps loginutils shell \
32 sysklogd util-linux libbb libpwdgrp
34 ifeq ($(strip $(HAVE_DOT_CONFIG)),y)
36 all: busybox busybox.links #doc
38 # In this section, we need .config
40 include $(patsubst %,%/Makefile.in, $(DIRS))
42 busybox: .depend $(libraries-y)
43 $(CC) $(LDFLAGS) -o $@ $(libraries-y) $(LIBRARIES)
46 busybox.links: applets/busybox.mkll
49 install: applets/install.sh busybox busybox.links
52 uninstall: busybox busybox.links
53 for i in `cat busybox.links` ; do rm -f $$PREFIX$$i; done
55 install-hardlinks: applets/install.sh busybox busybox.links
56 $(SHELL) $< $(PREFIX) --hardlinks
59 # Documentation Targets
63 olddoc: docs/busybox.pod docs/BusyBox.txt docs/BusyBox.1 docs/BusyBox.html
65 docs/busybox.pod : docs/busybox_header.pod include/usage.h docs/busybox_footer.pod
66 - ( cat docs/busybox_header.pod; \
67 docs/autodocifier.pl include/usage.h; \
68 cat docs/busybox_footer.pod ) > docs/busybox.pod
70 docs/BusyBox.txt: docs/busybox.pod
72 @echo BusyBox Documentation
77 docs/BusyBox.1: docs/busybox.pod
79 - pod2man --center=BusyBox --release="version $(VERSION)" \
82 docs/BusyBox.html: docs/busybox.net/BusyBox.html
84 -@ rm -f docs/BusyBox.html
85 -@ ln -s busybox.net/BusyBox.html docs/BusyBox.html
87 docs/busybox.net/BusyBox.html: docs/busybox.pod
88 -@ mkdir -p docs/busybox.net
89 - pod2html --noindex $< > \
90 docs/busybox.net/BusyBox.html
94 # New docs based on DOCBOOK SGML
95 newdoc: docs/busybox.txt docs/busybox.pdf docs/busybox/busyboxdocumentation.html
97 docs/busybox.txt: docs/busybox.sgml
99 @echo BusyBox Documentation
102 (cd docs; sgmltools -b txt busybox.sgml)
104 docs/busybox.dvi: docs/busybox.sgml
106 (cd docs; sgmltools -b dvi busybox.sgml)
108 docs/busybox.ps: docs/busybox.sgml
110 (cd docs; sgmltools -b ps busybox.sgml)
112 docs/busybox.pdf: docs/busybox.ps
114 (cd docs; ps2pdf busybox.ps)
116 docs/busybox/busyboxdocumentation.html: docs/busybox.sgml
118 (cd docs/busybox.net; sgmltools -b html ../busybox.sgml)
120 # The nifty new buildsystem stuff
121 scripts/mkdep: scripts/mkdep.c
122 $(HOSTCC) $(HOSTCFLAGS) -o scripts/mkdep scripts/mkdep.c
124 scripts/split-include: scripts/split-include.c
125 $(HOSTCC) $(HOSTCFLAGS) -o scripts/split-include scripts/split-include.c
127 .depend: scripts/mkdep
128 rm -f .depend .hdepend;
129 mkdir -p include/config;
130 $(HOSTCC) $(HOSTCFLAGS) -o scripts/mkdep scripts/mkdep.c
131 scripts/mkdep -I include -- \
132 `find . -name \*.c -print` >> .depend;
133 scripts/mkdep -I include -- \
134 `find . -name \*.h -print` >> .hdepend;
135 $(MAKE) $(patsubst %,_sfdep_%,$(DIRS)) _FASTDEP_ALL_SUB_DIRS="$(DIRS)" ;
137 depend dep: include/config.h .depend
139 include/config/MARKER: depend scripts/split-include
140 scripts/split-include include/config.h include/config
141 @ touch include/config/MARKER
143 include/config.h: .config
144 @if [ ! -x ./scripts/config/conf ] ; then \
145 make -C scripts/config conf; \
147 @./scripts/config/conf -o sysdeps/$(TARGET_OS)/Config.in
150 $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<
154 @echo Finished installing...
157 else # ifeq ($(strip $(HAVE_DOT_CONFIG)),y)
162 # ---------------------------------------------------------------------------
165 make -C scripts/config conf
166 -@if [ ! -f .config ] ; then \
167 cp sysdeps/$(TARGET_OS)/defconfig .config; \
169 scripts/config/mconf:
170 make -C scripts/config ncurses conf mconf
171 -@if [ ! -f .config ] ; then \
172 cp sysdeps/$(TARGET_OS)/defconfig .config; \
175 menuconfig: scripts/config/mconf
176 @./scripts/config/mconf sysdeps/$(TARGET_OS)/Config.in
178 config: scripts/config/conf
179 @./scripts/config/conf sysdeps/$(TARGET_OS)/Config.in
181 oldconfig: scripts/config/conf
182 @./scripts/config/conf -o sysdeps/$(TARGET_OS)/Config.in
184 randconfig: scripts/config/conf
185 @./scripts/config/conf -r sysdeps/$(TARGET_OS)/Config.in
187 allyesconfig: scripts/config/conf
188 @./scripts/config/conf -y sysdeps/$(TARGET_OS)/Config.in
190 allnoconfig: scripts/config/conf
191 @./scripts/config/conf -n sysdeps/$(TARGET_OS)/Config.in
193 defconfig: scripts/config/conf
194 @./scripts/config/conf -d sysdeps/$(TARGET_OS)/Config.in
197 # Note that 'tests' is depricated. Use 'make check' instead
198 # To use the nice new testsuite....
199 cd tests && ./tester.sh
202 cd testsuite && ./runtest
205 - $(MAKE) -C tests clean
206 - rm -f docs/BusyBox.txt docs/BusyBox.1 docs/BusyBox.html \
207 docs/busybox.net/BusyBox.html
208 - rm -f docs/busybox.txt docs/busybox.dvi docs/busybox.ps \
209 docs/busybox.pdf docs/busybox.pod docs/busybox.net/busybox.html \
210 docs/busybox _install pod2htm* *.gdb *.elf *~ core
211 - rm -f busybox busybox.links libbb/loop.h .config.old .hdepend
213 - find . -name .\*.flags -exec rm -f {} \;
214 - find . -name \*.o -exec rm -f {} \;
215 - find . -name \*.a -exec rm -f {} \;
218 - rm -f scripts/split-include scripts/mkdep
219 - rm -rf include/config include/config.h
220 - find . -name .depend -exec rm -f {} \;
221 rm -f .config .config.old .config.cmd
222 - $(MAKE) -C scripts/config clean
224 release: distclean #doc
226 rm -rf busybox-$(VERSION); \
227 cp -a busybox busybox-$(VERSION); \
229 find busybox-$(VERSION)/ -type d \
232 -exec rm -rf {} \; ; \
234 find busybox-$(VERSION)/ -type f \
237 -exec rm -f {} \; ; \
239 tar -cvzf busybox-$(VERSION).tar.gz busybox-$(VERSION)/;
245 endif # ifeq ($(strip $(HAVE_DOT_CONFIG)),y)
247 .PHONY: dummy subdirs release distclean clean config oldconfig \
248 menuconfig tags check test tests depend