2020-06-09 21:58:23 +01:00
|
|
|
#
|
|
|
|
|
# Makefile
|
|
|
|
|
#
|
|
|
|
|
|
2020-06-30 00:28:46 +01:00
|
|
|
include Config.mk
|
2020-06-09 21:58:23 +01:00
|
|
|
|
2020-06-30 00:28:46 +01:00
|
|
|
.DEFAULT_GOAL=all
|
2020-10-31 19:48:18 +00:00
|
|
|
.PHONY: circle-stdlib mt32emu fluidsynth all clean veryclean
|
2020-06-09 21:58:23 +01:00
|
|
|
|
2020-06-30 00:28:46 +01:00
|
|
|
#
|
|
|
|
|
# Configure circle-stdlib
|
|
|
|
|
#
|
|
|
|
|
.ONESHELL:
|
|
|
|
|
$(CIRCLE_STDLIB_CONFIG) $(CIRCLE_CONFIG)&:
|
2020-11-11 01:01:26 +00:00
|
|
|
@echo "Configuring for Raspberry Pi $(RASPBERRYPI) ($(BITS) bit)"
|
|
|
|
|
$(CIRCLESTDLIBHOME)/configure --raspberrypi=$(RASPBERRYPI) --prefix=$(PREFIX)
|
2020-06-30 00:28:46 +01:00
|
|
|
|
2021-03-01 18:19:07 +00:00
|
|
|
# Apply patches
|
2021-05-16 21:09:46 +01:00
|
|
|
@patch -N -p1 --no-backup-if-mismatch -r - -d $(CIRCLEHOME) < patches/circle-44-minimal-usb-drivers.patch
|
2021-03-01 18:19:07 +00:00
|
|
|
|
2021-03-01 18:19:56 +00:00
|
|
|
ifeq ($(strip $(GC_SECTIONS)),1)
|
|
|
|
|
# Enable function/data sections for circle-stdlib
|
|
|
|
|
echo "CFLAGS_FOR_TARGET += -ffunction-sections -fdata-sections" >> $(CIRCLE_STDLIB_CONFIG)
|
|
|
|
|
endif
|
|
|
|
|
|
2020-10-10 20:05:28 +01:00
|
|
|
# Enable multi-core
|
|
|
|
|
echo "DEFINE += -DARM_ALLOW_MULTI_CORE" >> $(CIRCLE_CONFIG)
|
|
|
|
|
|
2020-10-10 18:13:51 +01:00
|
|
|
# Disable delay loop calibration (boot speed improvement)
|
|
|
|
|
echo "DEFINE += -DNO_CALIBRATE_DELAY" >> $(CIRCLE_CONFIG)
|
|
|
|
|
|
2020-06-30 00:28:46 +01:00
|
|
|
#
|
|
|
|
|
# Build circle-stdlib
|
|
|
|
|
#
|
2020-09-26 00:24:33 +01:00
|
|
|
circle-stdlib: $(CIRCLESTDLIBHOME)/.done
|
2020-06-30 00:28:46 +01:00
|
|
|
|
2020-09-26 00:24:33 +01:00
|
|
|
$(CIRCLESTDLIBHOME)/.done: $(CIRCLE_STDLIB_CONFIG)
|
|
|
|
|
@$(MAKE) -C $(CIRCLESTDLIBHOME)
|
|
|
|
|
touch $@
|
2020-11-11 01:01:26 +00:00
|
|
|
|
2020-06-30 00:28:46 +01:00
|
|
|
#
|
|
|
|
|
# Build mt32emu
|
|
|
|
|
#
|
2020-09-26 00:24:33 +01:00
|
|
|
mt32emu: $(MT32EMUBUILDDIR)/.done
|
|
|
|
|
|
|
|
|
|
$(MT32EMUBUILDDIR)/.done: $(CIRCLESTDLIBHOME)/.done
|
|
|
|
|
@export CFLAGS="$(CFLAGS_FOR_TARGET)"
|
|
|
|
|
@export CXXFLAGS="$(CFLAGS_FOR_TARGET)"
|
2020-11-11 01:01:26 +00:00
|
|
|
@cmake -B $(MT32EMUBUILDDIR) \
|
|
|
|
|
$(CMAKE_TOOLCHAIN_FLAGS) \
|
2020-11-01 17:33:03 +00:00
|
|
|
-DCMAKE_CXX_FLAGS_RELEASE="-Ofast" \
|
2020-06-30 00:28:46 +01:00
|
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
|
|
|
-Dlibmt32emu_C_INTERFACE=FALSE \
|
|
|
|
|
-Dlibmt32emu_SHARED=FALSE \
|
2020-09-26 00:24:33 +01:00
|
|
|
$(MT32EMUHOME) \
|
|
|
|
|
>/dev/null
|
2020-11-01 17:33:03 +00:00
|
|
|
@cmake --build $(MT32EMUBUILDDIR)
|
2020-09-26 00:24:33 +01:00
|
|
|
@touch $@
|
2020-11-01 17:33:03 +00:00
|
|
|
|
2020-10-31 19:48:18 +00:00
|
|
|
#
|
|
|
|
|
# Build FluidSynth
|
|
|
|
|
#
|
|
|
|
|
fluidsynth: $(FLUIDSYNTHBUILDDIR)/.done
|
|
|
|
|
|
|
|
|
|
$(FLUIDSYNTHBUILDDIR)/.done: $(CIRCLESTDLIBHOME)/.done
|
2021-05-16 16:49:58 +01:00
|
|
|
@patch -N -p1 --no-backup-if-mismatch -r - -d $(FLUIDSYNTHHOME) < patches/fluidsynth-2.2.1-circle.patch
|
2020-10-31 19:48:18 +00:00
|
|
|
|
|
|
|
|
@export CFLAGS="$(CFLAGS_FOR_TARGET)"
|
|
|
|
|
@cmake -B $(FLUIDSYNTHBUILDDIR) \
|
|
|
|
|
$(CMAKE_TOOLCHAIN_FLAGS) \
|
|
|
|
|
-DCMAKE_C_FLAGS_RELEASE="-Ofast -fopenmp-simd" \
|
|
|
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
|
|
|
-DBUILD_SHARED_LIBS=OFF \
|
|
|
|
|
-Denable-aufile=OFF \
|
|
|
|
|
-Denable-dbus=OFF \
|
|
|
|
|
-Denable-dsound=OFF \
|
|
|
|
|
-Denable-floats=ON \
|
|
|
|
|
-Denable-ipv6=OFF \
|
|
|
|
|
-Denable-jack=OFF \
|
|
|
|
|
-Denable-ladspa=OFF \
|
|
|
|
|
-Denable-libinstpatch=OFF \
|
|
|
|
|
-Denable-libsndfile=OFF \
|
|
|
|
|
-Denable-midishare=OFF \
|
|
|
|
|
-Denable-network=OFF \
|
|
|
|
|
-Denable-oboe=OFF \
|
|
|
|
|
-Denable-opensles=OFF \
|
|
|
|
|
-Denable-oss=OFF \
|
|
|
|
|
-Denable-pkgconfig=OFF \
|
|
|
|
|
-Denable-pulseaudio=OFF \
|
|
|
|
|
-Denable-readline=OFF \
|
|
|
|
|
-Denable-sdl2=OFF \
|
|
|
|
|
-Denable-threads=OFF \
|
|
|
|
|
-Denable-waveout=OFF \
|
|
|
|
|
-Denable-winmidi=OFF \
|
|
|
|
|
$(FLUIDSYNTHHOME) \
|
|
|
|
|
>/dev/null
|
|
|
|
|
@cmake --build $(FLUIDSYNTHBUILDDIR) --target libfluidsynth
|
|
|
|
|
@touch $@
|
|
|
|
|
|
2020-06-30 00:28:46 +01:00
|
|
|
#
|
|
|
|
|
# Build kernel itself
|
|
|
|
|
#
|
2020-10-31 19:48:18 +00:00
|
|
|
all: circle-stdlib mt32emu fluidsynth
|
2021-02-14 03:11:04 +00:00
|
|
|
@$(MAKE) -f Kernel.mk $(KERNEL).img $(KERNEL).hex
|
2020-06-09 21:58:23 +01:00
|
|
|
|
2020-06-30 00:28:46 +01:00
|
|
|
#
|
|
|
|
|
# Clean kernel only
|
|
|
|
|
#
|
|
|
|
|
clean:
|
|
|
|
|
@$(MAKE) -f Kernel.mk clean
|
2020-06-09 21:58:23 +01:00
|
|
|
|
2020-06-30 00:28:46 +01:00
|
|
|
#
|
|
|
|
|
# Clean kernel and all dependencies
|
|
|
|
|
#
|
|
|
|
|
veryclean: clean
|
2020-10-31 19:48:18 +00:00
|
|
|
# Reverse patches
|
2021-05-16 21:09:46 +01:00
|
|
|
@patch -R -N -p1 --no-backup-if-mismatch -r - -d $(CIRCLEHOME) < patches/circle-44-minimal-usb-drivers.patch
|
2021-05-16 16:49:58 +01:00
|
|
|
@patch -R -N -p1 --no-backup-if-mismatch -r - -d $(FLUIDSYNTHHOME) < patches/fluidsynth-2.2.1-circle.patch
|
2020-10-31 19:48:18 +00:00
|
|
|
|
2020-06-30 00:28:46 +01:00
|
|
|
# Clean circle-stdlib
|
|
|
|
|
@$(MAKE) -C $(CIRCLESTDLIBHOME) mrproper
|
2020-09-26 00:24:33 +01:00
|
|
|
@$(RM) $(CIRCLESTDLIBHOME)/.done
|
2020-06-09 21:58:23 +01:00
|
|
|
|
2020-06-30 00:28:46 +01:00
|
|
|
# Clean mt32emu
|
|
|
|
|
@$(RM) -r $(MT32EMUBUILDDIR)
|
2020-10-31 19:48:18 +00:00
|
|
|
|
|
|
|
|
# Clean FluidSynth
|
|
|
|
|
@$(RM) -r $(FLUIDSYNTHBUILDDIR)
|