1 CC = gcc 2 CFLAGS = -O3 -Wall -DGLIBC2 3 LDFLAGS = -static 4 5 BIN = main 6 OBJ = main.o ls.o true.o false.o rm.o whoami.o mount.o rmdir.o umount.o cat.o mkfifo.o cp.o hostname.o sh.o mknod.o ps.o 7 TARGET = ls true false rm whoami mount rmdir umount cat mkfifo cp hostname sh mknod ps 8 9 all: $(BIN) 10 strip $(BIN) 11 @for i in $(TARGET); do \ 12 ln -sf main $$i ; \ 13 done; \ 14 exit 0; 15 16 main: $(OBJ) 17 18 main.o: main.c commands.h 19 ls.o: ls.c ls.h 20 rm.o: rm.c rm.h 21 cat.o: cat.c cat.h 22 true.o: true.c true.h 23 false.o: false.c false.h 24 mount.o: mount.c mount.h 25 rmdir.o: rmdir.c rmdir.h 26 whoami.o: whoami.c whoami.h 27 umount.o: umount.c umount.h 28 29 clean: 30 rm -f $(OBJ) core *~ 31 32 distclean: 33 rm -f $(OBJ) $(BIN) $(TARGET) core *~ 34 for i in $(TARGET) $(BIN); do rm -f ../live/bin/$$i; done; 35 36 install: all 37 cp -af $(BIN) $(TARGET) ../live/bin/ |