# Makefile for busybox
#
+# Copyright (C) 1999-2000 Erik Andersen <andersee@debian.org>
+# Copyright (C) 2000 Karl M. Hegbloom <karlheg@debian.org>
+#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
#
PROG := busybox
-VERSION := 0.42
+VERSION := 0.43
BUILDTIME := $(shell TZ=GMT date "+%Y%m%d-%H%M")
+BUILDTIME := $(shell TZ=UTC date --utc "+%Y.%m.%d-%H:%M%z")
+BUILDTIME := $(shell TZ=UTC date --utc -R)
# Set the following to `true' to make a debuggable build.
# Leave this set to `false' for production use.
-# eg: `make DODEBUG=true'
+# eg: `make DODEBUG=true tests'
DODEBUG = false
# If you want a static binary, turn this on. I can't think
# of many situations where anybody would ever want it static,
# but...
-DOSTATIC = false
+DOSTATIC = true
# This will choke on a non-debian system
ARCH =`uname -m | sed -e 's/i.86/i386/' | sed -e 's/sparc.*/sparc/'`
OPTIMIZATION = -O2
endif
+# Allow alternative stripping tools to be used...
+ifndef $(STRIPTOOL)
+ STRIPTOOL = strip
+endif
+
+
# -D_GNU_SOURCE is needed because environ is used in init.c
ifeq ($(DODEBUG),true)
CFLAGS += -Wall -g -D_GNU_SOURCE
- STRIP =
LDFLAGS =
+ STRIP =
else
CFLAGS += -Wall $(OPTIMIZATION) -fomit-frame-pointer -fno-builtin -D_GNU_SOURCE
LDFLAGS = -s
- STRIP = strip --remove-section=.note --remove-section=.comment $(PROG)
+ STRIP = $(STRIPTOOL) --remove-section=.note --remove-section=.comment $(PROG)
#Only staticly link when _not_ debugging
ifeq ($(DOSTATIC),true)
LDFLAGS += --static
endif
LIBRARIES =
-OBJECTS = $(shell ./busybox.sh) messages.o utility.o
+OBJECTS = $(shell ./busybox.sh) busybox.o messages.o utility.o
CFLAGS += -DBB_VER='"$(VERSION)"'
CFLAGS += -DBB_BT='"$(BUILDTIME)"'
ifdef BB_INIT_SCRIPT
- CFLAGS += -DINIT_SCRIPT=${BB_INIT_SCRIPT}
+ CFLAGS += -DINIT_SCRIPT='"$(BB_INIT_SCRIPT)"'
endif
all: busybox busybox.links
+.PHONY: all
busybox: $(OBJECTS)
- $(CC) $(LDFLAGS) -o $(PROG) $(OBJECTS) $(LIBRARIES)
+ $(CC) $(LDFLAGS) -o $@ $^ $(LIBRARIES)
$(STRIP)
busybox.links: busybox.def.h
- ./busybox.mkll | sort >$@
+regexp.o nfsmount.o: %.o: %.h
+$(OBJECTS): %.o: busybox.def.h internal.h %.c
+
+.PHONY: test tests
+test tests:
+ cd tests && $(MAKE) all
+
+.PHONY: clean
clean:
- - rm -f $(PROG) busybox.links *~ *.o core
+ - rm -f busybox.links *~ *.o core
- rm -rf _install
+ - cd tests && $(MAKE) clean
+.PHONY: distclean
distclean: clean
- - rm -f $(PROG)
-
-$(OBJECTS): %.o: %.c busybox.def.h internal.h Makefile messages.c
+ - rm -f busybox
+ - cd tests && $(MAKE) distclean
+.PHONY: install
install: busybox busybox.links
./install.sh $(PREFIX)
-dist: release
-
-release: distclean
+.PHONY: dist release
+dist release: distclean
cd ..; \
rm -rf busybox-$(VERSION); \
cp -a busybox busybox-$(VERSION); \