More stuff
[oweals/busybox.git] / Makefile
index bef25a3ae160d5542758a93e5409bce718761049..4b05075f9abc5695920cac8c4bc7a12777f24190 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -2,37 +2,54 @@
 VERSION=0.29alpha1
 BUILDTIME=$(shell date "+%Y%m%d-%H%M")
 
+# Comment out the following to make a debuggable build
+# Leave this off for production use.
+#DODEBUG=true
+
 #This will choke on a non-debian system
 ARCH=`uname -m | sed -e 's/i.86/i386/' | sed -e 's/sparc.*/sparc/'`
 
 
-STRIP= strip --remove-section=.note --remove-section=.comment busybox
-LDFLAGS= -s
-
 # -D_GNU_SOURCE is needed because environ is used in init.c
-CFLAGS=-Wall -O2 -fomit-frame-pointer -fno-builtin -D_GNU_SOURCE
-# For debugging only
-#CFLAGS=-Wall -g -D_GNU_SOURCE
-LIBRARIES=-lc
-OBJECTS=$(shell ./busybox.obj) utility.o
+ifeq ($(DODEBUG),true)
+    CFLAGS=-Wall -g -D_GNU_SOURCE
+    STRIP=
+    LDFLAGS=
+else
+    CFLAGS=-Wall -Os -fomit-frame-pointer -fno-builtin -D_GNU_SOURCE
+    LDFLAGS= -s
+    STRIP= strip --remove-section=.note --remove-section=.comment busybox
+endif
+
+ifndef $(prefix)
+    prefix=`pwd`
+endif
+BINDIR=$(prefix)
 
+LIBRARIES=-lc
+OBJECTS=$(shell ./busybox.sh)
 CFLAGS+= -DBB_VER='"$(VERSION)"'
 CFLAGS+= -DBB_BT='"$(BUILDTIME)"'
 
-#all: busybox links
-all: busybox
+all: busybox links
 
 busybox: $(OBJECTS)
-       $(CC) $(CFLAGS) $(LDFLAGS) -o busybox $(OBJECTS) $(LIBRARIES)
-       #$(STRIP)
+       $(CC) $(LDFLAGS) -o busybox $(OBJECTS) $(LIBRARIES)
+       $(STRIP)
 
 links:
        - ./busybox.mkll | sort >busybox.links
        
 clean:
-       - rm -f busybox busybox.links *~ *.o 
+       - rm -f busybox busybox.links *~ *.o core 
 
 distclean: clean
        - rm -f busybox
 
 force:
+
+$(OBJECTS):  busybox.def.h internal.h Makefile
+
+install:    busybox
+       install.sh $(BINDIR)
+