Major overhaul for the Makefile

This commit is contained in:
Adrien Bourmault 2019-05-11 00:16:40 +02:00
parent 90761c4a10
commit 20cc9ab4be
4 changed files with 72 additions and 22 deletions

View File

@ -75,8 +75,7 @@ NC='\033[1;37m'
## SOURCES INSCRIPTION-------------------------------------------------------- # ## SOURCES INSCRIPTION-------------------------------------------------------- #
# Lib C sources + libbuf source # Lib C sources + libbuf source
LibCSources = libc/atoi.c libc/itoa.c \ LibCSources = libc/mem.c libc/ctype.c \
libc/mem.c libc/ctype.c \
libc/rand.c libc/sprintf.c \ libc/rand.c libc/sprintf.c \
libc/status.c libc/string.c \ libc/status.c libc/string.c \
libc/strtol.c extras/argv.c \ libc/strtol.c extras/argv.c \
@ -86,7 +85,10 @@ LibCSources = libc/atoi.c libc/itoa.c \
libbuf/bmisc.c libbuf/bclose.c \ libbuf/bmisc.c libbuf/bclose.c \
extras/prog.c \ extras/prog.c \
KernObj=$(patsubst %.c,$(KOBJDIR)/%.o,$(KernSources)) LibCObj=$(patsubst %.c,$(KOBJDIR)/%.o,$(LibCSources))
LibCDep=$(patsubst %.c,$(KOBJDIR)/%.d,$(LibCSources))
LibCObj += $(KOBJDIR)/libc/atoi.o $(KOBJDIR)/libc/itoa.o
# Kernel sources # Kernel sources
KernSources = kernel/cpu/cpuid.c \ KernSources = kernel/cpu/cpuid.c \
@ -101,7 +103,8 @@ KernSources = kernel/cpu/cpuid.c \
kernel/io/spkr.c kernel/po/shtdwn.c \ kernel/io/spkr.c kernel/po/shtdwn.c \
kernel/sh/shell.c kernel/sh/shcmds.c kernel/sh/shell.c kernel/sh/shcmds.c
LibCObj=$(patsubst %.c,$(KOBJDIR)/%.o,$(LibCSources)) KernObj=$(patsubst %.c,$(KOBJDIR)/%.o,$(KernSources))
KernDep=$(patsubst %.c,$(KOBJDIR)/%.d,$(KernSources))
## KALEID MAKEFILE ----------------------------------------------------------- # ## KALEID MAKEFILE ----------------------------------------------------------- #
@ -119,7 +122,9 @@ $(KOBJDIR):
@mkdir -p $(KOBJDIR) @mkdir -p $(KOBJDIR)
## LIB C MAKEFILE ------------------------------------------------------------ # ## LIB C MAKEFILE ------------------------------------------------------------ #
$(KOBJDIR)/libc/atoi.o: $(KALEIDDIR)/libc/atoi.c $(INCLUDEDIR)/*/*.h | $(KOBJDIR) -include $(LibCDep)
$(KOBJDIR)/libc/atoi.o: $(KALEIDDIR)/libc/atoi.c $(INCLUDEDIR)/kalbase.h | $(KOBJDIR)
@mkdir -p $(shell dirname $@) @mkdir -p $(shell dirname $@)
@$(KCC) -D_NEED_ATOI $< -o $@.1 @$(KCC) -D_NEED_ATOI $< -o $@.1
@$(KCC) -D_NEED_ATOL $< -o $@.2 @$(KCC) -D_NEED_ATOL $< -o $@.2
@ -129,7 +134,7 @@ $(KOBJDIR)/libc/atoi.o: $(KALEIDDIR)/libc/atoi.c $(INCLUDEDIR)/*/*.h | $(KOBJDIR
@rm -f $@.1 $@.2 $@.3 $@.4 @rm -f $@.1 $@.2 $@.3 $@.4
@echo ${CL2}[$@] ${CL}Compiled.${CL3} @echo ${CL2}[$@] ${CL}Compiled.${CL3}
$(KOBJDIR)/libc/itoa.o: $(KALEIDDIR)/libc/itoa.c $(INCLUDEDIR)/*/*.h | $(KOBJDIR) $(KOBJDIR)/libc/itoa.o: $(KALEIDDIR)/libc/itoa.c $(INCLUDEDIR)/kalbase.h | $(KOBJDIR)
@mkdir -p $(shell dirname $@) @mkdir -p $(shell dirname $@)
@$(KCC) -D_NEED_ITOA $< -o $@.1 @$(KCC) -D_NEED_ITOA $< -o $@.1
@$(KCC) -D_NEED_LTOA $< -o $@.2 @$(KCC) -D_NEED_LTOA $< -o $@.2
@ -139,15 +144,16 @@ $(KOBJDIR)/libc/itoa.o: $(KALEIDDIR)/libc/itoa.c $(INCLUDEDIR)/*/*.h | $(KOBJDIR
@rm -f $@.1 $@.2 $@.3 $@.4 @rm -f $@.1 $@.2 $@.3 $@.4
@echo ${CL2}[$@] ${CL}Compiled.${CL3} @echo ${CL2}[$@] ${CL}Compiled.${CL3}
$(KOBJDIR)/libc/mem.o: $(KALEIDDIR)/libc/mem.c $(INCLUDEDIR)/*/*.h | $(KOBJDIR) $(KOBJDIR)/libc/mem.o: $(KALEIDDIR)/libc/mem.c | $(KOBJDIR)
@mkdir -p $(shell dirname $@) @mkdir -p $(shell dirname $@)
@$(KCC) -fno-strict-aliasing $< -o $@ @$(KCC) -fno-strict-aliasing $< -o $@
@echo ${CL2}[$@] ${CL}Compiled.${CL3} @echo ${CL2}[$@] ${CL}Compiled.${CL3}
## MISC MAKEFILE ------------------------------------------------------------- # ## KERNEL MAKEFILE ----------------------------------------------------------- #
-include $(KernDep)
$(KOBJDIR)/kernel/cpu/idt.o: $(KALEIDDIR)/kernel/cpu/idt.c \ $(KOBJDIR)/kernel/cpu/idt.o: $(KALEIDDIR)/kernel/cpu/idt.c \
$(KALEIDDIR)/kernel/cpu/isr.asm $(INCLUDEDIR)/*/*.h | $(KOBJDIR) $(KALEIDDIR)/kernel/cpu/isr.asm | $(KOBJDIR)
@mkdir -p $(shell dirname $@) @mkdir -p $(shell dirname $@)
@$(ASM) $(ASMFLAGS) $(KALEIDDIR)/kernel/cpu/isr.asm -o $@.1 @$(ASM) $(ASMFLAGS) $(KALEIDDIR)/kernel/cpu/isr.asm -o $@.1
@$(KCC) $< -o $@.2 @$(KCC) $< -o $@.2
@ -156,7 +162,7 @@ $(KOBJDIR)/kernel/cpu/idt.o: $(KALEIDDIR)/kernel/cpu/idt.c \
@echo ${CL2}[$@] ${CL}Compiled.${CL3} @echo ${CL2}[$@] ${CL}Compiled.${CL3}
$(KOBJDIR)/kernel/cpu/cpuid.o: $(KALEIDDIR)/kernel/cpu/cpuid.c \ $(KOBJDIR)/kernel/cpu/cpuid.o: $(KALEIDDIR)/kernel/cpu/cpuid.c \
$(KALEIDDIR)/kernel/cpu/cpuf.asm $(INCLUDEDIR)/*/*.h | $(KOBJDIR) $(KALEIDDIR)/kernel/cpu/cpuf.asm | $(KOBJDIR)
@mkdir -p $(shell dirname $@) @mkdir -p $(shell dirname $@)
@$(ASM) $(ASMFLAGS) $(KALEIDDIR)/kernel/cpu/cpuf.asm -o $@.1 @$(ASM) $(ASMFLAGS) $(KALEIDDIR)/kernel/cpu/cpuf.asm -o $@.1
@$(KCC) $< -o $@.2 @$(KCC) $< -o $@.2
@ -164,9 +170,15 @@ $(KOBJDIR)/kernel/cpu/cpuid.o: $(KALEIDDIR)/kernel/cpu/cpuid.c \
@rm -f $@.1 $@.2 @rm -f $@.1 $@.2
@echo ${CL2}[$@] ${CL}Compiled.${CL3} @echo ${CL2}[$@] ${CL}Compiled.${CL3}
## DEPENDENCIES MAKEFILE ----------------------------------------------------- #
$(KOBJDIR)/%.d: %.c | $(KOBJDIR)
@mkdir -p $(shell dirname $@)
@$(KCC) -MM -MT $(@:%.d=%.o) -MF $@ $<
@echo ${CL2}[$@] ${CL}Dependencies generated.${CL3}
## MAIN MAKEFILE ------------------------------------------------------------- # ## MAIN MAKEFILE ------------------------------------------------------------- #
$(KOBJDIR)/%.o: %.c $(INCLUDEDIR)/*/*.h $(KALEIDDIR)/*/*/*.h | $(KOBJDIR) $(KOBJDIR)/%.o: %.c | $(KOBJDIR)
@mkdir -p $(shell dirname $@) @mkdir -p $(shell dirname $@)
@$(KCC) $< -o $@ @$(KCC) $< -o $@
@echo ${CL2}[$@] ${CL}Compiled.${CL3} @echo ${CL2}[$@] ${CL}Compiled.${CL3}

View File

@ -56,59 +56,100 @@
│   │   │   └── loader.o │   │   │   └── loader.o
│   │   └── kaleid │   │   └── kaleid
│   │   ├── extras │   │   ├── extras
│   │   │   ├── argv.d
│   │   │   ├── argv.o │   │   │   ├── argv.o
│   │   │   ├── prog.d
│   │   │   └── prog.o │   │   │   └── prog.o
│   │   ├── kernel │   │   ├── kernel
│   │   │   ├── cpu │   │   │   ├── cpu
│   │   │   │   ├── cpuid.d
│   │   │   │   ├── cpuid.o │   │   │   │   ├── cpuid.o
│   │   │   │   ├── idt.d
│   │   │   │   └── idt.o │   │   │   │   └── idt.o
│   │   │   ├── init │   │   │   ├── init
│   │   │   │   ├── info.d
│   │   │   │   ├── info.o │   │   │   │   ├── info.o
│   │   │   │   ├── init.d
│   │   │   │   ├── init.o │   │   │   │   ├── init.o
│   │   │   │   ├── ssp.d
│   │   │   │   ├── ssp.o │   │   │   │   ├── ssp.o
│   │   │   │   ├── table.d
│   │   │   │   └── table.o │   │   │   │   └── table.o
│   │   │   ├── io │   │   │   ├── io
│   │   │   │   ├── cursor.d
│   │   │   │   ├── cursor.o │   │   │   │   ├── cursor.o
│   │   │   │   ├── keyb.d
│   │   │   │   ├── keyb.o │   │   │   │   ├── keyb.o
│   │   │   │   ├── rtc.d
│   │   │   │   ├── rtc.o │   │   │   │   ├── rtc.o
│   │   │   │   ├── spkr.d
│   │   │   │   ├── spkr.o │   │   │   │   ├── spkr.o
│   │   │   │   ├── vga.d
│   │   │   │   └── vga.o │   │   │   │   └── vga.o
│   │   │   ├── ke │   │   │   ├── ke
│   │   │   │   ├── log.d
│   │   │   │   ├── log.o │   │   │   │   ├── log.o
│   │   │   │   ├── panic.d
│   │   │   │   └── panic.o │   │   │   │   └── panic.o
│   │   │   ├── mm │   │   │   ├── mm
│   │   │   │   ├── gdt.d
│   │   │   │   ├── gdt.o │   │   │   │   ├── gdt.o
│   │   │   │   ├── heap.d
│   │   │   │   ├── heap.o │   │   │   │   ├── heap.o
│   │   │   │   ├── malloc.d
│   │   │   │   ├── malloc.o │   │   │   │   ├── malloc.o
│   │   │   │   ├── map.d
│   │   │   │   └── map.o │   │   │   │   └── map.o
│   │   │   ├── po │   │   │   ├── po
│   │   │   │   ├── shtdwn.d
│   │   │   │   └── shtdwn.o │   │   │   │   └── shtdwn.o
│   │   │   ├── ps │   │   │   ├── ps
│   │   │   │   ├── sched.d
│   │   │   │   └── sched.o │   │   │   │   └── sched.o
│   │   │   └── sh │   │   │   └── sh
│   │   │   ├── shcmds.d
│   │   │   ├── shcmds.o │   │   │   ├── shcmds.o
│   │   │   ├── shell.d
│   │   │   └── shell.o │   │   │   └── shell.o
│   │   ├── libbuf │   │   ├── libbuf
│   │   │   ├── bclose.d
│   │   │   ├── bclose.o │   │   │   ├── bclose.o
│   │   │   ├── bflush.d
│   │   │   ├── bflush.o │   │   │   ├── bflush.o
│   │   │   ├── bgetc.d
│   │   │   ├── bgetc.o │   │   │   ├── bgetc.o
│   │   │   ├── bmisc.d
│   │   │   ├── bmisc.o │   │   │   ├── bmisc.o
│   │   │   ├── bopen.d
│   │   │   ├── bopen.o │   │   │   ├── bopen.o
│   │   │   ├── bprint.d
│   │   │   ├── bprint.o │   │   │   ├── bprint.o
│   │   │   ├── bputc.d
│   │   │   ├── bputc.o │   │   │   ├── bputc.o
│   │   │   ├── bread.d
│   │   │   ├── bread.o │   │   │   ├── bread.o
│   │   │   ├── bscan.d
│   │   │   ├── bscan.o │   │   │   ├── bscan.o
│   │   │   ├── bscroll.d
│   │   │   ├── bscroll.o │   │   │   ├── bscroll.o
│   │   │   ├── bwrite.d
│   │   │   └── bwrite.o │   │   │   └── bwrite.o
│   │   └── libc │   │   └── libc
│   │   ├── atoi.o │   │   ├── atoi.o
│   │   ├── ctype.d
│   │   ├── ctype.o │   │   ├── ctype.o
│   │   ├── itoa.o │   │   ├── itoa.o
│   │   ├── mem.d
│   │   ├── mem.o │   │   ├── mem.o
│   │   ├── rand.d
│   │   ├── rand.o │   │   ├── rand.o
│   │   ├── sprintf.d
│   │   ├── sprintf.o │   │   ├── sprintf.o
│   │   ├── status.d
│   │   ├── status.o │   │   ├── status.o
│   │   ├── string.d
│   │   ├── string.o │   │   ├── string.o
│   │   ├── strtol.d
│   │   └── strtol.o │   │   └── strtol.o
│   ├── grub.log │   ├── grub.log
│   ├── kaleid32_disasm.asm │   ├── kaleid32_disasm.asm
@ -156,10 +197,10 @@
│   ├── kernel │   ├── kernel
│   │   ├── cpu │   │   ├── cpu
│   │   │   ├── cpuf.asm │   │   │   ├── cpuf.asm
│   │   │   ├── cpuf.inc
│   │   │   ├── cpuid.c │   │   │   ├── cpuid.c
│   │   │   ├── idt.c │   │   │   ├── idt.c
│   │   │   ├── isr.asm │   │   │   └── isr.asm
│   │   │   └── isr.inc
│   │   ├── init │   │   ├── init
│   │   │   ├── info.c │   │   │   ├── info.c
│   │   │   ├── init.c │   │   │   ├── init.c
@ -218,4 +259,4 @@
├── ProjectTree ├── ProjectTree
└── README.md └── README.md
41 directories, 152 files 41 directories, 193 files

View File

@ -25,11 +25,11 @@
#include <kernel/cpuid.h> #include <kernel/cpuid.h>
void CpuGetInfos(void) /* void CpuGetInfos(void) */
{ /* { */
CpuCpuidString(0, CpuVendorString); /* CpuCpuidString(0, CpuVendorString); */
return (char *)&CpuVendorString[1]; /* return (char *)&CpuVendorString[1]; */
} /* } */

View File

@ -62,9 +62,6 @@ noreturn void BtStartKern(multiboot_info_t *mbInfo, uint mbMagic, void *codeSeg)
IoGetRtcTimeChar(); IoGetRtcTimeChar();
IoPrintRtcTime(); IoPrintRtcTime();
extern void PrintVendorString(void);
PrintVendorString();
KeStartShell(); KeStartShell();
KernLog("End of input reached\n"); KernLog("End of input reached\n");