Generate C code in OBJDIR
This should allow merging in the project without breaking "make dist" after "make distclean". This currently requires GCC though (for "-include").
This commit is contained in:
parent
c101f525d0
commit
f42e325785
3
src/kernel/platform.c
Normal file
3
src/kernel/platform.c
Normal file
|
@ -0,0 +1,3 @@
|
|||
/* $Id$ */
|
||||
/* Copyright (c) 2018 Pierre Pronchery <khorben@defora.org> */
|
||||
/* This file is part of DeforaOS uKernel */
|
|
@ -30,7 +30,6 @@
|
|||
PLATFORMCONF="../arch/$ARCH/platform.conf"
|
||||
[ -f "$PLATFORMCONF" ] || PLATFORMCONF="platform.conf"
|
||||
PROGNAME="platform.sh"
|
||||
TARGET="platform.c"
|
||||
|
||||
|
||||
#functions
|
||||
|
@ -181,4 +180,4 @@ if [ $# -ne 1 ]; then
|
|||
exit $?
|
||||
fi
|
||||
#XXX breaks OBJDIR
|
||||
_platform < "$PLATFORMCONF" > "$TARGET"
|
||||
_platform < "$PLATFORMCONF" > "$1"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
targets=crtbegin.o,crtend.o,crti.o,crtn.o,platform.c,uKernel.bin
|
||||
targets=crtbegin.o,crtend.o,crti.o,crtn.o,../arch/$(ARCH)/platform.c,uKernel.bin
|
||||
cppflags_force=-nostdinc -isystem ../../include -I..
|
||||
as=$(CC)
|
||||
asflags_force=$(CFLAGSF) $(CFLAGS) -c
|
||||
|
@ -24,10 +24,10 @@ sources=crti.S
|
|||
type=object
|
||||
sources=crtn.S
|
||||
|
||||
[platform.c]
|
||||
[../arch/$(ARCH)/platform.c]
|
||||
type=script
|
||||
script=./platform.sh
|
||||
depends=../arch/amd64/platform.conf,../arch/i386/platform.conf,platform.sh
|
||||
depends=../arch/$(ARCH)/platform.conf,platform.sh
|
||||
|
||||
[uKernel.bin]
|
||||
type=binary
|
||||
|
@ -48,5 +48,9 @@ depends=../common/crtn.S,../arch/amd64/crtn.S,../arch/i386/crtn.S
|
|||
[multiboot.c]
|
||||
depends=../loader/multiboot.c,../drivers/boot/multiboot.h
|
||||
|
||||
[platform.c]
|
||||
cppflags=-include $(OBJDIR)../arch/$(ARCH)/platform.c
|
||||
depends=$(OBJDIR)../arch/$(ARCH)/platform.c
|
||||
|
||||
[start.S]
|
||||
depends=../arch/amd64/gdt.S,../arch/amd64/kernel.S,../arch/i386/gdt.S,../arch/i386/idt.S,../arch/i386/intr.S,../arch/i386/kernel.S
|
||||
|
|
1
tools/arch/amd64/project.conf
Normal file
1
tools/arch/amd64/project.conf
Normal file
|
@ -0,0 +1 @@
|
|||
dist=Makefile,start.S
|
1
tools/arch/i386/project.conf
Normal file
1
tools/arch/i386/project.conf
Normal file
|
@ -0,0 +1 @@
|
|||
dist=Makefile,start.S
|
2
tools/arch/project.conf
Normal file
2
tools/arch/project.conf
Normal file
|
@ -0,0 +1,2 @@
|
|||
subdirs=amd64,i386
|
||||
dist=Makefile,start.S
|
3
tools/platform.c
Normal file
3
tools/platform.c
Normal file
|
@ -0,0 +1,3 @@
|
|||
/* $Id$ */
|
||||
/* Copyright (c) 2018 Pierre Pronchery <khorben@defora.org> */
|
||||
/* This file is part of DeforaOS uKernel */
|
|
@ -1,11 +1,12 @@
|
|||
targets=crtbegin.o,crtend.o,crti.o,crtn.o,platform.c,start.o,uKernel
|
||||
subdirs=arch
|
||||
targets=crtbegin.o,crtend.o,crti.o,crtn.o,arch/$(ARCH)/platform.c,start.o,uKernel
|
||||
cppflags_force=-nostdinc -isystem ../include -I../src
|
||||
cflags_force=`../tools/platform.sh -V NATIVE_CFLAGS -C "$$ARCH"`
|
||||
cflags=-W -Wall -g -O2
|
||||
as=$(CC)
|
||||
asflags_force=$(CFLAGSF) $(CFLAGS) -c
|
||||
ldflags_force=`../tools/platform.sh -V NATIVE_LDFLAGS -C "$$ARCH"`
|
||||
dist=Makefile,arch/start.S,arch/amd64/start.S,arch/i386/start.S,platform.sh
|
||||
dist=Makefile,platform.sh
|
||||
|
||||
#targets
|
||||
[crtbegin.o]
|
||||
|
@ -24,7 +25,7 @@ sources=crti.S
|
|||
type=object
|
||||
sources=crtn.S
|
||||
|
||||
[platform.c]
|
||||
[arch/$(ARCH)/platform.c]
|
||||
type=script
|
||||
script=../src/kernel/platform.sh
|
||||
depends=platform.conf,../src/kernel/platform.sh
|
||||
|
@ -55,5 +56,9 @@ depends=../src/common/crtn.S,../src/arch/amd64/crtn.S,../src/arch/i386/crtn.S
|
|||
[main.c]
|
||||
depends=../src/kernel/main.c
|
||||
|
||||
[platform.c]
|
||||
cppflags=-include $(OBJDIR)arch/$(ARCH)/platform.c
|
||||
depends=$(OBJDIR)arch/$(ARCH)/platform.c
|
||||
|
||||
[start.S]
|
||||
depends=arch/start.S,arch/amd64/start.S,arch/i386/start.S
|
||||
|
|
Loading…
Reference in New Issue
Block a user