6092afc74d
When country was converted to a submodule (by me) the production installation target was hacked onto the kernel subdirectory Makefile which wasn't ideal. Introduce a production target into the country Makefile that does the installation. Since we want the submodule to be buildable standalone, we can't include the variable definitions from the upper level, such as $(DIRSEP) and $(CP), so the caller has to pass those in at build time if using the production target. Tested on Linux (GCC + Watcom) and DOS (Watcom)
149 lines
3.5 KiB
Makefile
149 lines
3.5 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
|
|
DIRSEP=\
|
|
CP=copy
|
|
else
|
|
BUILDENV ?= linux
|
|
DIRSEP=/
|
|
CP=cp
|
|
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 setver; do sed 's@!include "\(.*\)"@include ../mkfiles/gcc.mak@' < $$i/makefile > $$i/GNUmakefile; done
|
|
MAKEREMOVE=for i in utils lib drivers boot sys kernel setver; 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
|
|
cd country && $(MAKE) DIRSEP=$(DIRSEP) CP=$(CP) production
|
|
cd setver && $(MAKE) production
|
|
$(MAKEREMOVE)
|
|
|
|
clean:
|
|
$(MAKEADJUST)
|
|
cd utils && $(MAKE) clean
|
|
cd lib && $(MAKE) clean
|
|
cd drivers && $(MAKE) clean
|
|
cd boot && $(MAKE) clean
|
|
cd sys && $(MAKE) clean
|
|
cd kernel && $(MAKE) clean
|
|
cd country && $(MAKE) clean
|
|
cd setver && $(MAKE) clean
|
|
$(MAKEREMOVE)
|
|
|
|
clobber:
|
|
$(MAKEADJUST)
|
|
cd utils && $(MAKE) clobber
|
|
cd lib && $(MAKE) clobber
|
|
cd drivers && $(MAKE) clobber
|
|
cd boot && $(MAKE) clobber
|
|
cd sys && $(MAKE) clobber
|
|
cd kernel && $(MAKE) clobber
|
|
cd country && $(MAKE) clobber
|
|
cd setver && $(MAKE) clobber
|
|
$(MAKEREMOVE)
|