Skip to content

Commit

Permalink
New top-level Makefile.
Browse files Browse the repository at this point in the history
Based on this commit by @DankRank:
DankRank@3dd5ea8

GNU make handles dependency checking significantly better than batch files
and shell scripts, plus it can run builds in parallel.
  • Loading branch information
GerbilSoft committed Sep 22, 2016
1 parent 873ca4d commit bce8234
Show file tree
Hide file tree
Showing 3 changed files with 80 additions and 120 deletions.
63 changes: 2 additions & 61 deletions Build.bat
@@ -1,61 +1,2 @@
@echo off

cd multidol
echo.
echo Building Multi-DOL Loader
echo.
make windows=1 clean
make windows=1

cd ..\kernel\asm
echo.
echo Building asm files
echo.
make windows=1 clean
make windows=1

cd ..\..\resetstub
echo.
echo Building Reset Stub
echo.
make clean
make

cd ..\fatfs
echo.
echo Building FatFS libraries
echo.
make -f Makefile.arm clean
make -f Makefile.arm
make -f Makefile.ppc clean
make -f Makefile.ppc

cd ..\codehandler
echo.
echo Building Nintendont Codehandler
echo.
call build.bat

cd ..\kernel
echo.
echo Building Nintendont Kernel
echo.
make windows=1 clean
make windows=1

cd ..\loader\source\ppc
echo.
echo Building Nintendont HID
echo.
make clean
make

cd ..\..\..\loader
echo.
echo Building Nintendont Loader
echo.
make clean
make

echo.
pause
@REM This batch file is still here for compatibility reasons.
make forced
61 changes: 2 additions & 59 deletions Build.sh
@@ -1,60 +1,3 @@
#!/bin/sh

cd multidol
echo " "
echo "Building Multi-DOL Loader"
echo " "
make clean
make

cd ../kernel/asm
echo " "
echo "Building asm files"
echo " "
make clean
make

cd ../../resetstub
echo " "
echo "Building Reset Stub"
echo " "
make clean
make

cd ../fatfs
echo " "
echo "Building FatFS libraries"
echo " "
make -f Makefile.arm clean
make -f Makefile.arm
make -f Makefile.ppc clean
make -f Makefile.ppc

cd ../codehandler
echo " "
echo "Building Nintendont Codehandler"
echo " "
sh ./build.sh

cd ../kernel
echo " "
echo "Building Nintendont Kernel"
echo " "
make clean
make

cd ../loader/source/ppc
echo " "
echo "Building Nintendont HID"
echo " "
make clean
make

cd ../../../loader
echo " "
echo "Building Nintendont Loader"
echo " "
make clean
make

echo " "
# This shell script is still here for compatibility reasons.
make forced
76 changes: 76 additions & 0 deletions Makefile
@@ -0,0 +1,76 @@
SUBPROJECTS := multidol kernel/asm resetstub \
fatfs/libfat-arm.a fatfs/libfat-ppc.a \
codehandler kernel \
loader/source/ppc loader
.PHONY: all forced clean $(SUBPROJECTS)

all: loader
forced: clean all

multidol:
@echo " "
@echo "Building Multi-DOL loader"
@echo " "
$(MAKE) -C multidol

kernel/asm:
@echo " "
@echo "Building asm files"
@echo " "
$(MAKE) -C kernel/asm

resetstub:
@echo " "
@echo "Building reset stub"
@echo " "
$(MAKE) -C resetstub

fatfs/libfat-arm.a:
@echo " "
@echo "Building FatFS library for ARM"
@echo " "
$(MAKE) -C fatfs -f Makefile.arm

fatfs/libfat-ppc.a:
@echo " "
@echo "Building FatFS library for PPC"
@echo " "
$(MAKE) -C fatfs -f Makefile.ppc

codehandler:
@echo " "
@echo "Building Nintendont code handler"
@echo " "
$(MAKE) -C codehandler

kernel: kernel/asm fatfs/libfat-arm.a codehandler
@echo " "
@echo "Building Nintendont kernel"
@echo " "
$(MAKE) -C kernel

loader/source/ppc:
@echo " "
@echo "Building Nintendont HID"
@echo " "
$(MAKE) -C loader/source/ppc

loader: multidol resetstub fatfs/libfat-ppc.a kernel loader/source/ppc
@echo " "
@echo "Building Nintendont loader"
@echo " "
$(MAKE) -C loader

clean:
@echo " "
@echo "Cleaning all subprojects..."
@echo " "
$(MAKE) -C multidol clean
$(MAKE) -C kernel/asm clean
$(MAKE) -C resetstub clean
$(MAKE) -C fatfs -f Makefile.arm clean
$(MAKE) -C fatfs -f Makefile.ppc clean
$(MAKE) -C codehandler clean
$(MAKE) -C kernel clean
$(MAKE) -C loader/source/ppc clean
$(MAKE) -C loader clean

0 comments on commit bce8234

Please sign in to comment.