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-------------------------------------------------------- #
# Lib C sources + libbuf source
LibCSources = libc/atoi.c libc/itoa.c \
libc/mem.c libc/ctype.c \
LibCSources = libc/mem.c libc/ctype.c \
libc/rand.c libc/sprintf.c \
libc/status.c libc/string.c \
libc/strtol.c extras/argv.c \
@ -86,7 +85,10 @@ LibCSources = libc/atoi.c libc/itoa.c \
libbuf/bmisc.c libbuf/bclose.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
KernSources = kernel/cpu/cpuid.c \
@ -101,7 +103,8 @@ KernSources = kernel/cpu/cpuid.c \
kernel/io/spkr.c kernel/po/shtdwn.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 ----------------------------------------------------------- #
@ -119,7 +122,9 @@ $(KOBJDIR):
@mkdir -p $(KOBJDIR)
## 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 $@)
@$(KCC) -D_NEED_ATOI $< -o $@.1
@$(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
@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 $@)
@$(KCC) -D_NEED_ITOA $< -o $@.1
@$(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
@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 $@)
@$(KCC) -fno-strict-aliasing $< -o $@
@echo ${CL2}[$@] ${CL}Compiled.${CL3}
## MISC MAKEFILE ------------------------------------------------------------- #
## KERNEL MAKEFILE ----------------------------------------------------------- #
-include $(KernDep)
$(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 $@)
@$(ASM) $(ASMFLAGS) $(KALEIDDIR)/kernel/cpu/isr.asm -o $@.1
@$(KCC) $< -o $@.2
@ -156,7 +162,7 @@ $(KOBJDIR)/kernel/cpu/idt.o: $(KALEIDDIR)/kernel/cpu/idt.c \
@echo ${CL2}[$@] ${CL}Compiled.${CL3}
$(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 $@)
@$(ASM) $(ASMFLAGS) $(KALEIDDIR)/kernel/cpu/cpuf.asm -o $@.1
@$(KCC) $< -o $@.2
@ -164,9 +170,15 @@ $(KOBJDIR)/kernel/cpu/cpuid.o: $(KALEIDDIR)/kernel/cpu/cpuid.c \
@rm -f $@.1 $@.2
@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 ------------------------------------------------------------- #
$(KOBJDIR)/%.o: %.c $(INCLUDEDIR)/*/*.h $(KALEIDDIR)/*/*/*.h | $(KOBJDIR)
$(KOBJDIR)/%.o: %.c | $(KOBJDIR)
@mkdir -p $(shell dirname $@)
@$(KCC) $< -o $@
@echo ${CL2}[$@] ${CL}Compiled.${CL3}

View File

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

View File

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

View File

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