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 %MAKE% production
if errorlevel 1 goto abort-cd 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.
echo Process SETVER +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ echo Process SETVER +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo. echo.

View File

@ -27,7 +27,7 @@ OBJS=$(OBJS1) $(OBJS2) $(OBJS3) $(OBJS4) $(OBJS5) $(OBJS6) $(OBJS7) $(OBJS8)
# *Explicit Rules* # *Explicit Rules*
production: ../bin/$(TARGET).sys ../bin/country.sys production: ../bin/$(TARGET).sys
../bin/$(TARGET).sys: kernel.sys ../bin/$(TARGET).sys: kernel.sys
$(CP) kernel.sys ..$(DIRSEP)bin $(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) kernel.exe: $(TARGET).lnk $(OBJS) $(LIBS)
$(LINK) @$(TARGET).lnk; $(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 clobber: clean
-$(RM) kernel.exe kernel.sys status.me -$(RM) kernel.exe kernel.sys status.me

View File

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