mirror of
https://github.com/FDOS/kernel.git
synced 2025-07-23 13:54:30 +02:00
For GCC builds use GNU make instead of wmake throughout.
This eliminates all build-dependencies on Open Watcom.
This commit is contained in:
parent
7705558b3e
commit
d7a05ab6cd
@ -20,10 +20,10 @@ fat32lba.bin: boot32lb.asm
|
|||||||
$(NASM) boot32lb.asm -l$*.lst -ofat32lba.bin
|
$(NASM) boot32lb.asm -l$*.lst -ofat32lba.bin
|
||||||
|
|
||||||
oemfat12.bin: oemboot.asm
|
oemfat12.bin: oemboot.asm
|
||||||
$(NASM) -dISFAT12 oemboot.asm -l$*.lst -ooemfat12.bin
|
$(NASM) -dISFAT12 oemboot.asm -l$*.lst -ooemfat12.bin
|
||||||
|
|
||||||
oemfat16.bin: oemboot.asm
|
oemfat16.bin: oemboot.asm
|
||||||
$(NASM) -dISFAT16 oemboot.asm -l$*.lst -ooemfat16.bin
|
$(NASM) -dISFAT16 oemboot.asm -l$*.lst -ooemfat16.bin
|
||||||
|
|
||||||
clobber: clean
|
clobber: clean
|
||||||
-$(RM) *.bin status.me
|
-$(RM) *.bin status.me
|
||||||
|
@ -43,7 +43,7 @@ kernel.exe: $(TARGET).lnk $(OBJS) $(LIBS)
|
|||||||
$(LINK) @$(TARGET).lnk;
|
$(LINK) @$(TARGET).lnk;
|
||||||
|
|
||||||
../bin/country.sys: country.asm
|
../bin/country.sys: country.asm
|
||||||
$(NASM) -o $*.sys country.asm
|
$(NASM) -o ../bin/country.sys country.asm
|
||||||
|
|
||||||
clobber: clean
|
clobber: clean
|
||||||
-$(RM) kernel.exe kernel.sys status.me
|
-$(RM) kernel.exe kernel.sys status.me
|
||||||
|
15
makefile
15
makefile
@ -74,9 +74,11 @@ endif
|
|||||||
ifeq ($(BUILDENV),windows)
|
ifeq ($(BUILDENV),windows)
|
||||||
COMPILER=owwin
|
COMPILER=owwin
|
||||||
TEST_F=type >nul 2>nul
|
TEST_F=type >nul 2>nul
|
||||||
|
TOUCH=wtouch
|
||||||
else
|
else
|
||||||
COMPILER=owlinux
|
COMPILER=owlinux
|
||||||
TEST_F=test -f
|
TEST_F=test -f
|
||||||
|
TOUCH=touch
|
||||||
ifndef WATCOM
|
ifndef WATCOM
|
||||||
WATCOM=$(HOME)/watcom
|
WATCOM=$(HOME)/watcom
|
||||||
PATH:=$(WATCOM)/binl:$(PATH)
|
PATH:=$(WATCOM)/binl:$(PATH)
|
||||||
@ -87,8 +89,17 @@ XCPU=86
|
|||||||
XFAT=32
|
XFAT=32
|
||||||
XUPX=upx --8086 --best
|
XUPX=upx --8086 --best
|
||||||
XNASM=nasm
|
XNASM=nasm
|
||||||
|
ifeq ($(COMPILER),gcc)
|
||||||
|
MAKE=make
|
||||||
|
MAKEADJUST=for i in utils lib drivers boot sys kernel; do sed 's@!include "\(.*\)"@include ../mkfiles/gcc.mak@' < $$i/makefile > $$i/GNUmakefile; done
|
||||||
|
MAKEREMOVE=for i in utils lib drivers boot sys kernel; do rm -f $$i/GNUmakefile; done
|
||||||
|
XLINK=ia16-elf-gcc
|
||||||
|
else
|
||||||
MAKE=wmake -ms -h
|
MAKE=wmake -ms -h
|
||||||
|
MAKEADJUST=
|
||||||
|
MAKEREMOVE=
|
||||||
XLINK=wlink
|
XLINK=wlink
|
||||||
|
endif
|
||||||
#ALLCFLAGS=-DDEBUG
|
#ALLCFLAGS=-DDEBUG
|
||||||
|
|
||||||
-include config.mak
|
-include config.mak
|
||||||
@ -97,8 +108,9 @@ ifdef XUPX
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
all:
|
all:
|
||||||
|
$(MAKEADJUST)
|
||||||
cd utils && $(MAKE) production
|
cd utils && $(MAKE) production
|
||||||
cd lib && ( $(TEST_F) libm.lib || wtouch libm.lib )
|
cd lib && ( $(TEST_F) libm.lib || $(TOUCH) libm.lib )
|
||||||
cd drivers && $(MAKE) production
|
cd drivers && $(MAKE) production
|
||||||
cd boot && $(MAKE) production
|
cd boot && $(MAKE) production
|
||||||
cd sys && $(MAKE) production
|
cd sys && $(MAKE) production
|
||||||
@ -119,3 +131,4 @@ clobber:
|
|||||||
cd boot && $(MAKE) clobber
|
cd boot && $(MAKE) clobber
|
||||||
cd sys && $(MAKE) clobber
|
cd sys && $(MAKE) clobber
|
||||||
cd kernel && $(MAKE) clobber
|
cd kernel && $(MAKE) clobber
|
||||||
|
$(MAKEREMOVE)
|
||||||
|
@ -2,16 +2,35 @@
|
|||||||
# GCC.MAK - kernel compiler options for ia16-elf-gcc
|
# GCC.MAK - kernel compiler options for ia16-elf-gcc
|
||||||
#
|
#
|
||||||
|
|
||||||
|
#**********************************************************************
|
||||||
|
#* TARGET : we create a %TARGET%.sys file
|
||||||
|
#* TARGETOPT : options, handled down to the compiler
|
||||||
|
#**********************************************************************
|
||||||
|
|
||||||
|
TARGET=KGC$(XCPU)$(XFAT)
|
||||||
|
TARGETOPT=-march=i8086
|
||||||
|
|
||||||
|
ifeq ($(XCPU),186)
|
||||||
|
TARGETOPT=march=i80186
|
||||||
|
ALLCFLAGS+=-DI186
|
||||||
|
endif
|
||||||
|
ifeq ($(XCPU),386)
|
||||||
|
TARGETOPT=-march=i80286
|
||||||
|
ALLCFLAGS+=-DI386
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(XFAT),32)
|
||||||
|
ALLCFLAGS+=-DWITHFAT32
|
||||||
|
NASMFLAGS+=-DWITHFAT32
|
||||||
|
endif
|
||||||
|
|
||||||
|
NASM=$(XNASM)
|
||||||
|
NASMFLAGS+=-i../hdr/ -DXCPU=$(XCPU) -felf -o $@
|
||||||
|
|
||||||
CC=ia16-elf-gcc -c
|
CC=ia16-elf-gcc -c
|
||||||
CL=ia16-elf-gcc
|
CL=ia16-elf-gcc
|
||||||
INCLUDEPATH=.
|
INCLUDEPATH=.
|
||||||
|
|
||||||
!if $(XCPU) != 186
|
|
||||||
!if $(XCPU) != 386
|
|
||||||
TARGETOPT=-march=i8086
|
|
||||||
!endif
|
|
||||||
!endif
|
|
||||||
|
|
||||||
LIBUTIL=ar crs
|
LIBUTIL=ar crs
|
||||||
LIBPLUS=
|
LIBPLUS=
|
||||||
LIBTERM=
|
LIBTERM=
|
||||||
@ -20,8 +39,6 @@ TINY=-mcmodel=tiny
|
|||||||
CFLAGST=-Os -fpack-struct -fcall-used-es -w -o $@
|
CFLAGST=-Os -fpack-struct -fcall-used-es -w -o $@
|
||||||
CFLAGSC=
|
CFLAGSC=
|
||||||
|
|
||||||
TARGET=KGC
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# heavy stuff - building
|
# heavy stuff - building
|
||||||
#
|
#
|
||||||
@ -36,17 +53,29 @@ TARGET=KGC
|
|||||||
# -w disable warnings for now
|
# -w disable warnings for now
|
||||||
# -Werror treat all warnings as errors
|
# -Werror treat all warnings as errors
|
||||||
|
|
||||||
ALLCFLAGS=-I../hdr $(TARGETOPT) $(ALLCFLAGS) -mcmodel=small -fleading-underscore -fno-common -fpack-struct -ffreestanding -fcall-used-es -mrtd -w -Werror -Os
|
ALLCFLAGS+=-I../hdr $(TARGETOPT) -mcmodel=small -fleading-underscore -fno-common -fpack-struct -ffreestanding -fcall-used-es -mrtd -w -Werror -Os
|
||||||
INITCFLAGS=$(ALLCFLAGS) -o $@
|
INITCFLAGS=$(ALLCFLAGS) -o $@
|
||||||
CFLAGS=$(ALLCFLAGS) -o $@
|
CFLAGS=$(ALLCFLAGS) -o $@
|
||||||
NASMFLAGS=$(NASMFLAGS) -f elf -o $@
|
|
||||||
|
|
||||||
DIRSEP=/
|
DIRSEP=/
|
||||||
RM=rm -f
|
RM=rm -f
|
||||||
CP=cp
|
CP=cp
|
||||||
ECHOTO=echo>>
|
ECHOTO=echo>>
|
||||||
|
ifeq ($(LOADSEG)0, 0)
|
||||||
|
LOADSEG=0x60
|
||||||
|
endif
|
||||||
|
|
||||||
INITPATCH=objcopy --redefine-sym ___umodsi3=_init_umodsi3 --redefine-sym ___udivsi3=_init_udivsi3 --redefine-sym ___ashlsi3=_init_ashlsi3 --redefine-sym ___lshrsi3=_init_lshrsi3
|
INITPATCH=objcopy --redefine-sym ___umodsi3=_init_umodsi3 --redefine-sym ___udivsi3=_init_udivsi3 --redefine-sym ___ashlsi3=_init_ashlsi3 --redefine-sym ___lshrsi3=_init_lshrsi3
|
||||||
CLDEF=1
|
CLDEF=1
|
||||||
CLT=gcc -DDOSC_TIME_H -I../hdr -o $@
|
CLT=gcc -DDOSC_TIME_H -I../hdr -o $@
|
||||||
CLC=$(CLT)
|
CLC=$(CLT)
|
||||||
XLINK=$(CL) -Tkernel.ld -Wl,-Map,kernel.map -o kernel.exe $(OBJS) -Wl,--whole-archive ../drivers/device.lib -Wl,--no-whole-archive $#
|
LINK=$(XLINK) -Tkernel.ld -Wl,-Map,kernel.map -o kernel.exe $(OBJS) -Wl,--whole-archive ../drivers/device.lib -Wl,--no-whole-archive \#
|
||||||
|
|
||||||
|
.SUFFIXES: .obj .asm
|
||||||
|
|
||||||
|
# *Implicit Rules*
|
||||||
|
.asm.obj :
|
||||||
|
$(NASM) -D$(COMPILER) $(NASMFLAGS) $*.asm
|
||||||
|
|
||||||
|
.c.obj :
|
||||||
|
$(CC) $(CFLAGS) $*.c
|
||||||
|
Loading…
x
Reference in New Issue
Block a user