+ wrap things in B<> to make pod2man happy
[oweals/busybox.git] / Makefile
index 6543e1f898e3b60144493d144941033167ce356e..54db45c9b31b5f35519f9559f92610a3e9ecc0a5 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,8 @@
 # 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
-BUILDTIME := $(shell TZ=GMT date "+%Y%m%d-%H%M")
+VERSION   := 0.43
+BUILDTIME := $(shell TZ=UTC date --utc "+%Y.%m.%d-%H:%M%z")
+export VERSION
 
 # 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...
+# If you want a static binary, turn this on.
 DOSTATIC = false
 
 # This will choke on a non-debian system
@@ -60,15 +62,21 @@ else
     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
+    LDFLAGS = 
     STRIP   =
-    LDFLAGS =
 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
@@ -80,37 +88,51 @@ ifndef $(PREFIX)
 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
+all: busybox busybox.links docs
+.PHONY: all
 
 busybox: $(OBJECTS)
-       $(CC) $(LDFLAGS) -o $(PROG) $(OBJECTS) $(LIBRARIES)
+       $(CC) $(LDFLAGS) -o $@ $^ $(LIBRARIES)
        $(STRIP)
 
 busybox.links: busybox.def.h
        - ./busybox.mkll | sort >$@
 
+docs:  docs/busybox.pod
+       cd docs && $(MAKE) clean all 
+
+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
+       $(MAKE) -C docs clean all 
        cd ..;                                  \
        rm -rf busybox-$(VERSION);              \
        cp -a busybox busybox-$(VERSION);       \