mirror of https://github.com/FDOS/kernel.git
135 lines
3.2 KiB
Makefile
135 lines
3.2 KiB
Makefile
# What you WANT on DOS is:
|
|
# EDIT CONFIG.B, COPY CONFIG.B to CONFIG.BAT, RUN BUILD.BAT
|
|
# On Linux, use config.mak, and "make all", "make clean", or "make clobber"
|
|
# On Windows, use config.mak, and
|
|
# "mingw32-make all", "mingw32-make clean", or "mingw32-make clobber"
|
|
|
|
default:
|
|
@echo On DOS, please type build, clean, or clobber.
|
|
@echo On Linux, please type make all, make clean, or make clobber.
|
|
@echo On Windows, please type mingw32-make all, mingw32-make clean, or
|
|
@echo mingw32-make clobber.
|
|
|
|
build:
|
|
build
|
|
|
|
bin\kwc8616.sys:
|
|
build -r wc 86 fat16
|
|
|
|
bin\kwc8632.sys:
|
|
build -r wc 86 fat32
|
|
|
|
# use as follows: wmake -ms zip VERSION=2029
|
|
zip_src:
|
|
cd ..\..
|
|
zip -9 -r -k source/ke$(VERSION)s.zip source/ke$(VERSION) -i@source/ke$(VERSION)/filelist
|
|
cd source\ke$(VERSION)
|
|
|
|
BINLIST1 = doc bin/kernel.sys bin/sys.com
|
|
# removed - as the 2nd zip -r line to add those to the zip:
|
|
# BINLIST2 = bin/config.sys bin/autoexec.bat bin/command.com bin/install.bat
|
|
|
|
zipfat16: bin\kwc8616.sys
|
|
mkdir doc
|
|
mkdir doc\kernel
|
|
copy docs\*.txt doc\kernel
|
|
copy docs\*.cvs doc\kernel
|
|
copy docs\copying doc\kernel
|
|
copy docs\*.lsm doc\kernel
|
|
del doc\kernel\build.txt
|
|
del doc\kernel\lfnapi.txt
|
|
copy bin\kwc8616.sys bin\kernel.sys
|
|
zip -r -k ../ke$(VERSION)16.zip $(BINLIST)
|
|
utils\rmfiles doc\kernel\*.txt doc\kernel\*.cvs doc\kernel\*.lsm doc\kernel\copying
|
|
rmdir doc\kernel
|
|
rmdir doc
|
|
|
|
zipfat32: bin\kwc8632.sys
|
|
mkdir doc
|
|
mkdir doc\kernel
|
|
copy docs\*.txt doc\kernel
|
|
copy docs\*.cvs doc\kernel
|
|
copy docs\copying doc\kernel
|
|
copy docs\*.lsm doc\kernel
|
|
del doc\kernel\build.txt
|
|
del doc\kernel\lfnapi.txt
|
|
copy bin\kwc8632.sys bin\kernel.sys
|
|
zip -r -k ../ke$(VERSION)32.zip $(BINLIST)
|
|
utils\rmfiles doc\kernel\*.txt doc\kernel\*.cvs doc\kernel\*.lsm doc\kernel\copying
|
|
rmdir doc\kernel
|
|
rmdir doc
|
|
|
|
zip: zip_src zipfat16 zipfat32
|
|
|
|
#Linux part
|
|
#defaults: override using config.mak
|
|
export
|
|
|
|
ifeq ($(OS),Windows_NT)
|
|
BUILDENV ?= windows
|
|
else
|
|
BUILDENV ?= linux
|
|
endif
|
|
|
|
ifeq ($(BUILDENV),windows)
|
|
COMPILER=owwin
|
|
TEST_F=type >nul 2>nul
|
|
TOUCH=wtouch
|
|
else
|
|
COMPILER=owlinux
|
|
TEST_F=test -f
|
|
TOUCH=touch
|
|
ifndef WATCOM
|
|
WATCOM=$(HOME)/watcom
|
|
PATH:=$(WATCOM)/binl:$(PATH)
|
|
endif
|
|
endif
|
|
|
|
XCPU=86
|
|
XFAT=32
|
|
XUPX=upx --8086 --best
|
|
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
|
|
MAKEADJUST=
|
|
MAKEREMOVE=
|
|
XLINK=wlink
|
|
endif
|
|
#ALLCFLAGS=-DDEBUG
|
|
|
|
-include config.mak
|
|
ifdef XUPX
|
|
UPXOPT=-U
|
|
endif
|
|
|
|
all:
|
|
$(MAKEADJUST)
|
|
cd utils && $(MAKE) production
|
|
cd lib && ( $(TEST_F) libm.lib || $(TOUCH) libm.lib )
|
|
cd drivers && $(MAKE) production
|
|
cd boot && $(MAKE) production
|
|
cd sys && $(MAKE) production
|
|
cd kernel && $(MAKE) production
|
|
|
|
clean:
|
|
cd utils && $(MAKE) clean
|
|
cd lib && $(MAKE) clean
|
|
cd drivers && $(MAKE) clean
|
|
cd boot && $(MAKE) clean
|
|
cd sys && $(MAKE) clean
|
|
cd kernel && $(MAKE) clean
|
|
|
|
clobber:
|
|
cd utils && $(MAKE) clobber
|
|
cd lib && $(MAKE) clobber
|
|
cd drivers && $(MAKE) clobber
|
|
cd boot && $(MAKE) clobber
|
|
cd sys && $(MAKE) clobber
|
|
cd kernel && $(MAKE) clobber
|
|
$(MAKEREMOVE)
|