- supplement to the last patch
git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@401 315a16e6-25f9-4109-90ae-ca3045a26c18
This commit is contained in:
parent
308e023a85
commit
4992537990
1 changed files with 59 additions and 27 deletions
|
@ -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))
|
||||
|
|
Loading…
Add table
Reference in a new issue