Build: Country submodule now has production target

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)
This commit is contained in:
Andrew Bird 2024-02-11 21:57:56 +00:00
parent 3c97674cbf
commit 6092afc74d
3 changed files with 15 additions and 7 deletions

View File

@ -118,6 +118,13 @@ cd ..\kernel
%MAKE% production
if errorlevel 1 goto abort-cd
echo.
echo Process COUNTRY +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo.
cd ..\country
%MAKE% DIRSEP=\ CP=copy production
if errorlevel 1 goto abort-cd
echo.
echo Process SETVER +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo.

View File

@ -27,7 +27,7 @@ OBJS=$(OBJS1) $(OBJS2) $(OBJS3) $(OBJS4) $(OBJS5) $(OBJS6) $(OBJS7) $(OBJS8)
# *Explicit Rules*
production: ../bin/$(TARGET).sys ../bin/country.sys
production: ../bin/$(TARGET).sys
../bin/$(TARGET).sys: kernel.sys
$(CP) kernel.sys ..$(DIRSEP)bin
@ -42,12 +42,6 @@ kernel.sys: kernel.exe ../utils/exeflat.exe ../utils/upxentry.bin ../utils/upxde
kernel.exe: $(TARGET).lnk $(OBJS) $(LIBS)
$(LINK) @$(TARGET).lnk;
../bin/country.sys:
# warning, both cd and -C options required, cd for wmake, -C for gmake
cd ..$(DIRSEP)country
$(MAKE) -C ..$(DIRSEP)country all
$(CP) ..$(DIRSEP)country$(DIRSEP)country.sys ..$(DIRSEP)bin$(DIRSEP)country.sys
clobber: clean
-$(RM) kernel.exe kernel.sys status.me

View File

@ -67,8 +67,12 @@ export
ifeq ($(OS),Windows_NT)
BUILDENV ?= windows
DIRSEP=\
CP=copy
else
BUILDENV ?= linux
DIRSEP=/
CP=cp
endif
ifeq ($(BUILDENV),windows)
@ -115,6 +119,7 @@ all:
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)
@ -126,6 +131,7 @@ clean:
cd boot && $(MAKE) clean
cd sys && $(MAKE) clean
cd kernel && $(MAKE) clean
cd country && $(MAKE) clean
cd setver && $(MAKE) clean
$(MAKEREMOVE)
@ -137,5 +143,6 @@ clobber:
cd boot && $(MAKE) clobber
cd sys && $(MAKE) clobber
cd kernel && $(MAKE) clobber
cd country && $(MAKE) clobber
cd setver && $(MAKE) clobber
$(MAKEREMOVE)