- use non-recursive Makefiles

- this patch based on Florian Zeitz's hint


git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@400 315a16e6-25f9-4109-90ae-ca3045a26c18
This commit is contained in:
stefan 2011-02-09 19:13:40 +00:00
parent 9130e9f03c
commit 308e023a85
18 changed files with 97 additions and 318 deletions

20
Makefile.inc Normal file
View file

@ -0,0 +1,20 @@
C_source-$(MODULE) := $(addprefix $(subst _,/,$(MODULE))/,$(filter %.c,$(C_source)))
ASM_source-$(MODULE) := $(addprefix $(subst _,/,$(MODULE))/,$(filter %.asm,$(ASM_source)))
C_source :=
ASM_source :=
OBJS-$(MODULE) := $(C_source-$(MODULE):.c=.o)
OBJS-$(MODULE) += $(ASM_source-$(MODULE):.asm=.o)
$(MODULE): $(OBJS-$(MODULE))
$(NAME): $(OBJS-$(MODULE))
clean: clean-$(MODULE)
clean-$(MODULE): clean-% :
@echo Cleaning $(subst _,/,$*)
$Q$(RM) $(OBJS-$*) $(C_source-$*:.c=.dep)
.PHONY: clean-$(MODULE) $(MODULE)
-include $(C_source-$(MODULE):.c=.dep)

View file

@ -1,14 +0,0 @@
SUBDIRS = $(ARCH)
default:
for i in $(SUBDIRS); do $(MAKE) -C $$i default; done
all:
for i in $(SUBDIRS); do $(MAKE) -C $$i all; done
clean:
for i in $(SUBDIRS); do $(MAKE) -C $$i clean; done
depend:
for i in $(SUBDIRS); do $(MAKE) -C $$i depend; done

View file

@ -1,14 +0,0 @@
SUBDIRS = kernel mm #lib
default:
for i in $(SUBDIRS); do $(MAKE) -C $$i default; done
all:
for i in $(SUBDIRS); do $(MAKE) -C $$i all; done
clean:
for i in $(SUBDIRS); do $(MAKE) -C $$i clean; done
depend:
for i in $(SUBDIRS); do $(MAKE) -C $$i depend; done

View file

@ -1,25 +1,5 @@
C_source = scc.c gdt.c kb.c timer.c irq.c isrs.c idt.c vga.c multiboot.c apic.c pci.c processor.c
ASM_source = entry.asm string.asm
C_source := scc.c gdt.c kb.c timer.c irq.c isrs.c idt.c vga.c multiboot.c apic.c pci.c processor.c
ASM_source := entry.asm string.asm
MODULE := arch_x86_kernel
OBJS += $(patsubst %.c, %.o, $(filter %.c, $(C_source)))
OBJS += $(patsubst %.asm, %.o, $(filter %.asm, $(ASM_source)))
# other implicit rules
%.o : %.c
$(CC) -c -D__KERNEL__ $(CFLAGS) -o $@ $<
%.o : %.asm
$(ASM) $(ASMFLAGS) -o $@ $<
default: $(OBJS)
all: $(OBJS)
clean:
$(RM) *~ *.o $(NAME)
depend:
$(CC) -MM $(CFLAGS) $(C_source) > Makefile.dep
-include Makefile.dep
# DO NOT DELETE
include $(TOPDIR)/Makefile.inc

View file

@ -1,20 +1,4 @@
C_source = page.c
C_source := page.c
MODULE := arch_x86_mm
OBJS += $(patsubst %.c, %.o, $(filter %.c, $(C_source)))
# other implicit rules
%.o : %.c
$(CC) -c -D__KERNEL__ $(CFLAGS) -o $@ $<
default: $(OBJS)
all: $(OBJS)
clean:
$(RM) *.o *~ $(NAME)
depend:
$(CC) -MM $(CFLAGS) $(C_source) > Makefile.dep
-include Makefile.dep
# DO NOT DELETE
include $(TOPDIR)/Makefile.inc

View file

@ -1,14 +0,0 @@
SUBDIRS = net
default:
for i in $(SUBDIRS); do $(MAKE) -C $$i default; done
all:
for i in $(SUBDIRS); do $(MAKE) -C $$i all; done
clean:
for i in $(SUBDIRS); do $(MAKE) -C $$i clean; done
depend:
for i in $(SUBDIRS); do $(MAKE) -C $$i depend; done

View file

@ -1,21 +1,4 @@
C_source = rtl8139.c
C_source := rtl8139.c
MODULE := drivers_net
OBJS += $(patsubst %.c, %.o, $(filter %.c, $(C_source)))
ALLOBJS += $(patsubst %.c, %.o, $(filter %.c, $(C_source)))
# other implicit rules
%.o : %.c
$(CC) -c $(CFLAGS) -o $@ $<
default: $(OBJS)
all: $(OBJS)
clean:
$(RM) *.o *~ $(NAME)
depend:
$(CC) -MM $(CFLAGS) $(C_source) > Makefile.dep
-include Makefile.dep
# DO NOT DELETE
include $(TOPDIR)/Makefile.inc

View file

@ -1,20 +1,4 @@
C_source = fs.c initrd.c null.c
C_source := fs.c initrd.c null.c
MODULE := fs
OBJS += $(patsubst %.c, %.o, $(filter %.c, $(C_source)))
# other implicit rules
%.o : %.c
$(CC) -c -D__KERNEL__ $(CFLAGS) -o $@ $<
default: $(OBJS)
all: $(OBJS)
clean:
$(RM) *.o *~ $(NAME)
depend:
$(CC) -MM $(CFLAGS) $(C_source) > Makefile.dep
-include Makefile.dep
# DO NOT DELETE
include $(TOPDIR)/Makefile.inc

View file

@ -1,20 +1,4 @@
C_source = main.c tasks.c syscall.c tests.c echo.c ping.c init.c
C_source := main.c tasks.c syscall.c tests.c echo.c ping.c init.c
MODULE := kernel
OBJS += $(patsubst %.c, %.o, $(filter %.c, $(C_source)))
# other implicit rules
%.o : %.c
$(CC) -c -D__KERNEL__ $(CFLAGS) -o $@ $<
default: $(OBJS)
all: $(OBJS)
clean:
$(RM) *.o *~ $(NAME)
depend:
$(CC) -MM $(CFLAGS) $(C_source) > Makefile.dep
-include Makefile.dep
# DO NOT DELETE
include $(TOPDIR)/Makefile.inc

View file

@ -1,35 +1,50 @@
C_source = init.c chown.c environ.c execve.c fork.c fstat.c getpid.c gettod.c isatty.c link.c sbrk.c stat.c symlink.c times.c unlink.c wait.c kill.c lseek.c open.c close.c write.c read.c _exit.c errno.c
ASM_source =
ASM_FLAGS = -felf32
LIBNAME = libgloss.a
INC = -I../newlib/current/include
MODULE := libgloss
LIBNAME := libgloss.a
OBJS += $(patsubst %.c, %.o, $(filter %.c, $(C_source)))
OBJS += $(patsubst %.asm, %.o, $(filter %.asm, $(ASM_source)))
C_source := init.c chown.c environ.c execve.c fork.c fstat.c getpid.c gettod.c isatty.c link.c sbrk.c stat.c symlink.c times.c unlink.c wait.c kill.c lseek.c open.c close.c write.c read.c _exit.c errno.c
ASM_source :=
# other implicit rules
%.o : %.c
$(CC) -c $(CFLAGS) $(INC) -o $@ $<
C_source-$(MODULE) := $(addprefix $(subst _,/,$(MODULE))/,$(filter %.c,$(C_source)))
ASM_source-$(MODULE) := $(addprefix $(subst _,/,$(MODULE))/,$(filter %.asm,$(ASM_source)))
C_source :=
ASM_source :=
%.o : %.asm
$(ASM) $(ASMFLAGS) -o $@ $<
OBJS-$(MODULE) := $(C_source-$(MODULE):.c=.lo)
OBJS-$(MODULE) += $(ASM_source-$(MODULE):.asm=.lo)
default: $(OBJS)
$(MAKE) $(LIBNAME)
all:
$(MAKE) $(LIBNAME)
INC = -I$(TOPDIR)/newlib/current/include
$(LIBNAME): $(OBJS) crt0.o
$(AR) $(ARFLAGS) $(LIBNAME) $(OBJS)
cp $(LIBNAME) ../newlib/current/lib
cp crt0.o ../newlib/current/lib/metalsvm-crt0.o
clean:
$(RM) *.o *~ $(LIBNAME)
$(MODULE): $(MODULE)/$(LIBNAME) $(MODULE)/.crt
depend:
$(CC) -MM $(CFLAGS) $(C_source) > Makefile.dep
$(MODULE)/$(LIBNAME): $(OBJS-$(MODULE))
@echo [AR] $@
$Q$(AR) $(ARFLAGS) $@ $^ $P
@echo [CP] $@
$Qcp $@ $(TOPDIR)/newlib/current/lib
-include Makefile.dep
# DO NOT DELETE
$(MODULE)/.crt: $(MODULE)/crt0.o
@touch $@
@echo [CP] $<
$Qcp $< $(TOPDIR)/newlib/current/lib/eduos-crt0.o
%.lo : %.c
@echo [CC] $@
$Q$(CC) -c $(CFLAGS) $(INC) -o $@ $<
@echo [DEP] $*.dep
$Q$(CC) -MF $*.dep -MT $*.o -MM $(CFLAGS) $<
%.lo : %.asm
@echo [ASM] $@
$Q$(ASM) $(ASMFLAGS) -o $@ $<
clean: clean-$(MODULE)
clean-$(MODULE): clean-% :
@echo Cleaning $(subst _,/,$*)
$Q$(RM) $(OBJS-$*) $(C_source-$*:.c=.dep) $*/.crt $*/crt0.o
$Q$(RM) $(LIBNAME)
default: $(MODULE)
.PHONY: clean-$(MODULE) $(MODULE)
-include $(C_source-$(MODULE):.c=.dep)

View file

@ -1,20 +1,4 @@
C_source = string.c stdio.c printf.c sprintf.c qdivrem.c udivdi3.c umoddi3.c
C_source := string.c stdio.c printf.c sprintf.c qdivrem.c udivdi3.c umoddi3.c
MODULE := libkern
OBJS += $(patsubst %.c, %.o, $(filter %.c, $(C_source)))
# other implicit rules
%.o : %.c
$(CC) -c -D__KERNEL__ $(CFLAGS) -o $@ $<
default: $(OBJS)
all: $(OBJS)
clean:
$(RM) *.o *~ $(NAME)
depend:
$(CC) -MM $(CFLAGS) $(C_source) $(CPP_source) > Makefile.dep
-include Makefile.dep
# DO NOT DELETE
include $(TOPDIR)/Makefile.inc

View file

@ -1,14 +0,0 @@
SUBDIRS = src
default:
for i in $(SUBDIRS); do $(MAKE) -C $$i default; done
all:
for i in $(SUBDIRS); do $(MAKE) -C $$i all; done
clean:
for i in $(SUBDIRS); do $(MAKE) -C $$i clean; done
depend:
for i in $(SUBDIRS); do $(MAKE) -C $$i depend; done

View file

@ -1,14 +0,0 @@
SUBDIRS = api core netif
default:
$(MAKE) all
all:
for i in $(SUBDIRS); do $(MAKE) -C $$i all; done
clean:
for i in $(SUBDIRS); do $(MAKE) -C $$i clean; done
depend:
for i in $(SUBDIRS); do $(MAKE) -C $$i depend; done

View file

@ -1,20 +1,4 @@
C_source = err.c
C_source := err.c
MODULE := lwip_src_api
OBJS += $(patsubst %.c, %.o, $(filter %.c, $(C_source)))
# other implicit rules
%.o : %.c
$(CC) -c $(CFLAGS) -o $@ $<
default: $(OBJS)
all: $(OBJS)
clean:
$(RM) *.o *~
depend:
$(CC) -MM $(CFLAGS) $(C_source) $(CPP_source) > Makefile.dep
-include Makefile.dep
# DO NOT DELETE
include $(TOPDIR)/Makefile.inc

View file

@ -1,25 +1,4 @@
C_source = dhcp.c raw.c init.c mem.c memp.c netif.c pbuf.c stats.c udp.c tcp.c tcp_in.c tcp_out.c
SUBDIRS = ipv4
C_source := dhcp.c raw.c init.c mem.c memp.c netif.c pbuf.c stats.c udp.c tcp.c tcp_in.c tcp_out.c
MODULE := lwip_src_core
OBJS += $(patsubst %.c, %.o, $(filter %.c, $(C_source)))
# other implicit rules
%.o : %.c
$(CC) -c $(CFLAGS) -o $@ $<
default: $(OBJS)
for i in $(SUBDIRS); do $(MAKE) -C $$i default; done
all: $(OBJS)
for i in $(SUBDIRS); do $(MAKE) -C $$i all; done
clean:
for i in $(SUBDIRS); do $(MAKE) -C $$i clean; done
$(RM) *.o *~
depend:
for i in $(SUBDIRS); do $(MAKE) -C $$i depend; done
$(CC) -MM $(CFLAGS) $(C_source) $(CPP_source) > Makefile.dep
-include Makefile.dep
# DO NOT DELETE
include $(TOPDIR)/Makefile.inc

View file

@ -1,20 +1,4 @@
C_source = autoip.c inet.c inet_chksum.c ip.c ip_frag.c icmp.c igmp.c ip_addr.c
C_source := autoip.c inet.c inet_chksum.c ip.c ip_frag.c icmp.c igmp.c ip_addr.c
MODULE := lwip_src_core_ipv4
OBJS += $(patsubst %.c, %.o, $(filter %.c, $(C_source)))
# other implicit rules
%.o : %.c
$(CC) -c $(CFLAGS) -o $@ $<
default: $(OBJS)
all: $(OBJS)
clean:
$(RM) *.o *~
depend:
$(CC) -MM $(CFLAGS) $(C_source) $(CPP_source) > Makefile.dep
-include Makefile.dep
# DO NOT DELETE
include $(TOPDIR)/Makefile.inc

View file

@ -1,20 +1,4 @@
C_source = etharp.c
C_source := etharp.c
MODULE := lwip_src_netif
OBJS += $(patsubst %.c, %.o, $(filter %.c, $(C_source)))
# other implicit rules
%.o : %.c
$(CC) -c $(CFLAGS) -o $@ $<
default: $(OBJS)
all: $(OBJS)
clean:
$(RM) *.o *~
depend:
$(CC) -MM $(CFLAGS) $(C_source) $(CPP_source) > Makefile.dep
-include Makefile.dep
# DO NOT DELETE
include $(TOPDIR)/Makefile.inc

View file

@ -1,20 +1,4 @@
C_source = memory.c
C_source := memory.c
MODULE := mm
OBJS += $(patsubst %.c, %.o, $(filter %.c, $(C_source)))
# other implicit rules
%.o : %.c
$(CC) -c -D__KERNEL__ $(CFLAGS) -o $@ $<
default: $(OBJS)
all: $(OBJS)
clean:
$(RM) *.o *~ $(NAME)
depend:
$(CC) -MM $(CFLAGS) $(C_source) > Makefile.dep
-include Makefile.dep
# DO NOT DELETE
include $(TOPDIR)/Makefile.inc