From 499253799023351480ddae6d96e8157eb0cd11f1 Mon Sep 17 00:00:00 2001 From: stefan Date: Wed, 9 Feb 2011 19:15:10 +0000 Subject: [PATCH] - supplement to the last patch git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@401 315a16e6-25f9-4109-90ae-ca3045a26c18 --- Makefile.example | 86 +++++++++++++++++++++++++++++++++--------------- 1 file changed, 59 insertions(+), 27 deletions(-) diff --git a/Makefile.example b/Makefile.example index 46d9a582..903d3b83 100644 --- a/Makefile.example +++ b/Makefile.example @@ -1,43 +1,75 @@ -export TOPDIR = $(shell pwd) -export ARCH = x86 +TOPDIR = $(shell pwd) +ARCH = x86 NAME = metalsvm.bin SYM_NAME = metalsvm.sym -KERNDIRS = libkern kernel mm fs arch lwip drivers +LWIPDIRS = lwip/src/api lwip/src/core lwip/src/core/ipv4 lwip/src/netif +DRIVERDIRS = drivers/net +KERNDIRS = libkern kernel mm fs arch/$(ARCH)/kernel arch/$(ARCH)/mm $(LWIPDIRS) $(DRIVERDIRS) SUBDIRS = libgloss $(KERNDIRS) -OBJS = $(shell for i in $(KERNDIRS); do find $$i -name *.o; done) +#OBJS = $(shell for i in $(KERNDIRS); do find $$i -name *.o; done) OBJCOPY = objcopy STRIP_DEBUG = --strip-debug KEEP_DEBUG = --only-keep-debug -export MAKE = make -export ASM = nasm -export ASMFLAGS = -felf32 -g -export INCLUDE = -I$(TOPDIR)/include -I$(TOPDIR)/arch/$(ARCH)/include -I$(TOPDIR)/lwip/src/include -I$(TOPDIR)/lwip/src/include/ipv4 -I$(TOPDIR)/drivers -export CC = gcc -export CFLAGS = -g -m32 -march=i386 -Wall -O2 -fno-zero-initialized-in-bss -fno-builtin-function -fstrength-reduce -fomit-frame-pointer -finline-functions -nostdinc $(INCLUDE) -fno-stack-protector -export AR = ar -export ARFLAGS = rsv -export RM = rm -rf +MAKE = make +ASM = nasm +ASMFLAGS = -felf32 -g +INCLUDE = -I$(TOPDIR)/include -I$(TOPDIR)/arch/$(ARCH)/include -I$(TOPDIR)/lwip/src/include -I$(TOPDIR)/lwip/src/include/ipv4 -I$(TOPDIR)/drivers +CC = gcc +CFLAGS = -g -m32 -march=i386 -Wall -O2 -fno-zero-initialized-in-bss -fno-builtin-function -fstrength-reduce -fomit-frame-pointer -finline-functions -nostdinc $(INCLUDE) -fno-stack-protector +AR = ar +ARFLAGS = rsv +RM = rm -rf LD = ld LDFLAGS = -T link.ld -z max-page-size=4096 --defsym __BUILD_DATE=$(shell date +'%Y%m%d') --defsym __BUILD_TIME=$(shell date +'%H%M%S') --defsym __BUILD_VERSION=$(shell svnversion -cn ../ | sed -e "s/.*://" -e "s/\([0-9]*\).*/\1/" | grep "[0-9]") -default: - for i in $(SUBDIRS); do $(MAKE) -C $$i default; done - $(MAKE) link +# Prettify output +V = 0 +ifeq ($V,0) + Q = @ + P = > /dev/null +endif -all: - for i in $(SUBDIRS); do $(MAKE) -C $$i all; done - $(MAKE) link +default: all + +all: $(NAME) + +#all: +# for i in $(SUBDIRS); do $(MAKE) -C $$i all; done +# $(MAKE) link -link: - $(LD) $(LDFLAGS) -o $(NAME) $(OBJS) - $(OBJCOPY) $(KEEP_DEBUG) $(NAME) $(SYM_NAME) - $(OBJCOPY) $(STRIP_DEBUG) $(NAME) +#link: +# $(LD) $(LDFLAGS) -o $(NAME) $(OBJS) +# $(OBJCOPY) $(KEEP_DEBUG) $(NAME) $(SYM_NAME) +# $(OBJCOPY) $(STRIP_DEBUG) $(NAME) + +$(NAME): + @echo [LD] $(NAME) + $Q$(LD) $(LDFLAGS) -o $(NAME) $^ + @echo [OBJCOPY] $(SYM_NAME) + $Q$(OBJCOPY) $(KEEP_DEBUG) $(NAME) $(SYM_NAME) + @echo [OBJCOPY] $(NAME) + $Q$(OBJCOPY) $(STRIP_DEBUG) $(NAME) clean: - $(RM) $(NAME) $(SYM_NAME) *~ - for i in $(SUBDIRS); do $(MAKE) -k -C $$i clean; done + $Q$(RM) $(NAME) $(SYM_NAME) *~ + @echo Cleaned. -depend: - for i in $(SUBDIRS); do $(MAKE) -k -C $$i depend; done +#depend: +# for i in $(SUBDIRS); do $(MAKE) -k -C $$i depend; done + +%.o : %.c + @echo [CC] $@ + $Q$(CC) -c -D__KERNEL__ $(CFLAGS) -o $@ $< + @echo [DEP] $*.dep + $Q$(CC) -MF $*.dep -MT $*.o -MM $(CFLAGS) $< + + +%.o : %.asm + @echo [ASM] $@ + $Q$(ASM) $(ASMFLAGS) -o $@ $< + +.PHONY: default all clean emu gdb + +include $(addsuffix /Makefile,$(SUBDIRS))