Something went wrong. Try again.
A modern, network-enabled music player platform built on Rockbox technology. rockboxd.tsiry-sandratraina.com
rust deno navidrome airplay libadwaita zig mpris snapcast mpd rockbox audio subsonic
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551# __________ __ ___.# Open \______ \ ____ ____ | | _\_ |__ _______ ___# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \# \/ \/ \/ \/ \/#include $(TOOLSDIR)/functions.makeDEFINES = -DROCKBOX -DMEMORYSIZE=$(MEMORYSIZE) $(TARGET) \ -DTARGET_ID=$(TARGET_ID) -DTARGET_NAME=\"$(MODELNAME)\" $(BUILDDATE) \ $(EXTRA_DEFINES) # <-- -DSIMULATOR or notINCLUDES = -I$(BUILDDIR) -I$(BUILDDIR)/lang $(TARGET_INC)CFLAGS = $(INCLUDES) $(DEFINES) $(GCCOPTS)PPCFLAGS = $(filter-out -g -Dmain=SDL_main,$(CFLAGS)) # cygwin sdl-config fixCORE_LDOPTS = $(GLOBAL_LDOPTS) # linker ops specifically for core buildTOOLS = $(TOOLSDIR)/rdf2binary $(TOOLSDIR)/convbdf \ $(TOOLSDIR)/codepages $(TOOLSDIR)/scramble $(TOOLSDIR)/bmp2rb \ $(TOOLSDIR)/uclpack $(TOOLSDIR)/mkboot $(TOOLSDIR)/iaudio_bl_flash.c \ $(TOOLSDIR)/iaudio_bl_flash.hTOOLS += $(foreach tool,$(TOOLSET),$(TOOLSDIR)/$(tool))# MKFIRMWARE can be a command plus options (or a system command such as cp).# Depend on its executable when it is one of our build tools.MKFIRMWARE_TOOL = $(filter $(TOOLSDIR)/%,$(firstword $(MKFIRMWARE)))ifeq (,$(PREFIX))ifdef APP_TYPE# for sims, set simdisk/ as defaultifeq ($(APP_TYPE),sdl-sim)RBPREFIX = simdiskelse ifeq ($(APP_TYPE),sdl-app)RBPREFIX = /usr/localendifINSTALL = --install="$(RBPREFIX)"else# /dev/null as magic to tell it wasn't set, error out later in buildzip.plINSTALL = --install=/dev/nullendifelseRBPREFIX = $(PREFIX)INSTALL = --install="$(RBPREFIX)"endifRBINFO = $(BUILDDIR)/rockbox-info.txt# list suffixes to be understood by $*.SUFFIXES: .rock .codec .map .elf .c .S .o .bmp .a.PHONY: all clean tags zip tools manual bin build info langsifeq (,$(filter clean veryclean reconf tags voice voicetools manual manual-pdf manual-html manual-zhtml manual-txt manual-ztxt manual-zip manual-7zip help fontzip ,$(MAKECMDGOALS)))# none of the aboveDEPFILE = $(BUILDDIR)/make.dependifall: $(DEPFILE) build# Subdir makefiles. their primary purpose is to populate SRC, OTHER_SRC,# ASMDEFS_SRC and CORE_LIBS. But they also define special dependencies and# compile rulesinclude $(TOOLSDIR)/tools.makeifeq (,$(findstring checkwps,$(APP_TYPE))) ifeq (,$(findstring database,$(APP_TYPE))) ifeq (,$(findstring warble,$(APP_TYPE))) include $(FIRMDIR)/firmware.make include $(ROOTDIR)/apps/bitmaps/bitmaps.make ifeq (arch_arm,$(ARCH)) # some targets don't use the unwarminder because they have the glibc backtrace ifeq (,$(filter sonynwz,$(APP_TYPE))) include $(ROOTDIR)/lib/unwarminder/unwarminder.make endif endif ifeq (arch_mips,$(ARCH)) # mips unwinder is only usable on native ports ifeq (,$(APP_TYPE)) include $(ROOTDIR)/lib/mipsunwinder/mipsunwinder.make endif endif ifeq (,$(findstring bootloader,$(APPSDIR))) include $(ROOTDIR)/lib/skin_parser/skin_parser.make include $(ROOTDIR)/lib/tlsf/libtlsf.make endif endif endifendif#included before codecs.make and plugins.make so they see them)ifndef APP_TYPE include $(ROOTDIR)/lib/libsetjmp/libsetjmp.make ifeq (arch_arm,$(ARCH)) include $(ROOTDIR)/lib/arm_support/arm_support.make endifendififeq (,$(NO_UTF8PROC)) include $(ROOTDIR)/lib/utf8proc/utf8proc.makeendififeq (,$(findstring checkwps,$(APP_TYPE))) include $(ROOTDIR)/lib/fixedpoint/fixedpoint.makeendififneq (,$(findstring bootloader,$(APPSDIR))) ifneq (,$(findstring sonynwz,$(APP_TYPE))) include $(ROOTDIR)/firmware/target/hosted/sonynwz/sonynwz.make else ifneq (,$(findstring hiby_x1600,$(APP_TYPE))) include $(ROOTDIR)/firmware/target/hosted/hiby/hiby.make else ifneq (,$(findstring hibyos,$(APP_TYPE))) include $(ROOTDIR)/firmware/target/hosted/hibyos.make else ifneq (,$(findstring ingenic_x1000,$(MANUFACTURER))) include $(ROOTDIR)/firmware/target/mips/ingenic_x1000/x1000boot.make else ifneq (,$(findstring psp-homebrew,$(APP_TYPE))) include $(ROOTDIR)/packaging/psp/psp-eboot.make else include $(APPSDIR)/bootloader.make endifelse ifneq (,$(findstring checkwps,$(APP_TYPE))) include $(APPSDIR)/checkwps.make include $(ROOTDIR)/lib/skin_parser/skin_parser.makeelse ifneq (,$(findstring database,$(APP_TYPE))) include $(APPSDIR)/database.makeelse ifneq (,$(findstring warble,$(APP_TYPE))) include $(ROOTDIR)/lib/rbcodec/test/warble.make include $(ROOTDIR)/lib/tlsf/libtlsf.make include $(ROOTDIR)/lib/rbcodec/rbcodec.makeelse # core include $(APPSDIR)/lang/lang.make include $(APPSDIR)/apps.make include $(ROOTDIR)/lib/rbcodec/rbcodec.make ifeq ($(ENABLEDPLUGINS),yes) include $(APPSDIR)/plugins/bitmaps/pluginbitmaps.make include $(APPSDIR)/plugins/plugins.make endif ifneq (,$(findstring sdl,$(APP_TYPE))) include $(ROOTDIR)/uisimulator/uisimulator.make endif ifneq (,$(findstring ypr0,$(APP_TYPE))) include $(ROOTDIR)/firmware/target/hosted/samsungypr/ypr0/ypr0.make endif ifneq (,$(findstring ypr1,$(APP_TYPE))) include $(ROOTDIR)/firmware/target/hosted/samsungypr/ypr1/ypr1.make endif ifneq (,$(findstring sonynwz,$(APP_TYPE))) include $(ROOTDIR)/firmware/target/hosted/sonynwz/sonynwz.make endif ifneq (,$(findstring hiby_x1600,$(APP_TYPE))) include $(ROOTDIR)/firmware/target/hosted/hiby/hiby.make endif ifneq (,$(findstring hibyos,$(APP_TYPE))) include $(ROOTDIR)/firmware/target/hosted/hibyos.make endif ifneq (,$(findstring android_ndk, $(APP_TYPE))) include $(ROOTDIR)/firmware/target/hosted/ibasso/android_ndk.make else ifneq (,$(findstring android_cdylib, $(APP_TYPE))) include $(ROOTDIR)/firmware/target/hosted/android/cdylib/cdylib.make else ifneq (,$(findstring headless_host, $(APP_TYPE))) include $(ROOTDIR)/firmware/target/hosted/headless/headless.make else ifneq (,$(findstring wasm_app, $(APP_TYPE))) include $(ROOTDIR)/firmware/target/hosted/wasm/wasm.make else ifneq (,$(findstring android, $(APP_TYPE))) include $(ROOTDIR)/android/android.make endif endif ifneq (,$(findstring rgnano, $(MODELNAME))) include $(ROOTDIR)/packaging/rgnano/rgnano.make endif ifneq (,$(findstring 3ds-homebrew, $(APP_TYPE))) include $(ROOTDIR)/packaging/3ds/3ds.make endif ifneq (,$(findstring psp-homebrew, $(APP_TYPE))) include $(ROOTDIR)/packaging/psp/psp.make endifendif # bootloader# Include makefile for flashing/debugging with OpenOCD & GDBifeq (echor1,$(MODELNAME)) include $(ROOTDIR)/tools/echoplayer/openocd.makeendif# One or more subdir makefiles requested --gc-sections?ifdef CORE_GCSECTIONS # Do not use '--gc-sections' when compiling sdl-sim ifneq ($(findstring sdl-sim, $(APP_TYPE)), sdl-sim) CORE_LDOPTS += -Wl,--gc-sections endifendif # CORE_GCSECTIONSOBJ := $(SRC:.c=.o)OBJ := $(OBJ:.S=.o)OBJ += $(BMP:.bmp=.o)OBJ := $(call full_path_subst,$(ROOTDIR)/%,$(BUILDDIR)/%,$(OBJ))build: $(TOOLS) $(BUILDDIR)/$(BINARY) $(CODECS) $(ROCKS) $(RBINFO)lib: $(DEPFILE) $(ROCKBOXLIB) $(FIRMLIB) $(RBCODECLIB) $(CORE_LIBS) $(VOICESPEEXLIB) $(TOOLS) $(CODECS) $(ROCKS)$(RBINFO): $(BUILDDIR)/$(BINARY) $(SILENT)echo Creating $(@F) $(SILENT)$(TOOLSDIR)/mkinfo.pl $@$(DEPFILE) dep: $(call PRINTS,Generating dependencies) $(call mkdepfile,$(DEPFILE)_,$(SRC)) $(call mkdepfile,$(DEPFILE)_,$(OTHER_SRC:%.lua=)) $(call mkdepfile,$(DEPFILE)_,$(ASMDEFS_SRC)) $(call bmpdepfile,$(DEPFILE)_,$(BMP) $(PBMP)) @mv $(DEPFILE)_ $(DEPFILE)bin: $(DEPFILE) $(TOOLS) $(BUILDDIR)/$(BINARY) $(RBINFO)rocks: $(DEPFILE) $(TOOLS) $(ROCKS)codecs: $(DEPFILE) $(TOOLS) $(CODECS)tools: $(TOOLS)-include $(DEPFILE)veryclean: clean $(SILENT)rm -rf $(TOOLS)clean:: $(SILENT)echo Cleaning build directory $(SILENT)rm -rf rockbox.zip rockbox.7z rockbox.tar rockbox.tar.gz \ rockbox.tar.xz rockbox-full.* rockbox-fonts.* TAGS apps \ firmware tools comsim sim lang lib manual \ *.pdf *.a credits.raw rockbox.ipod bitmaps \ pluginbitmaps UI256.bmp rockbox-full.zip html txt \ rockbox-manual*.zip sysfont.h rockbox-info.txt voicefontids \ *.wav *.mp3 *.voice *.talk $(CLEANOBJS) \ $(LINKRAM) $(LINKROM) rockbox.elf rockbox.map rockbox.bin \ make.dep rombox.elf rombox.map rombox.bin romstart.txt \ $(BINARY) $(FLASHFILE) uisimulator bootloader flash $(BOOTLINK) \ rockbox.apk lang_enum.h rbversion.h fontbundle.h themeassets.h 3ds rockbox.3dsx \ rockbox.bnr rockbox.cia rockbox.icn rockbox.smdh PSP EBOOT.PBP rockbox.prx $(SILENT)rm -rf ../.zig-cache ../zig-out#### linking the binaries: ####.SECONDEXPANSION:ifeq (,$(findstring bootloader,$(APPSDIR)))# not bootloaderOBJ += $(LANG_O)ifndef APP_TYPE## target buildCONFIGFILE := $(FIRMDIR)/export/config/$(MODELNAME).hifeq ($(wildcard $(FIRMDIR)/target/$(CPU)/$(MANUFACTURER)/app.lds),)RAMLDS := $(FIRMDIR)/target/$(CPU)/app.ldselseRAMLDS := $(FIRMDIR)/target/$(CPU)/$(MANUFACTURER)/app.ldsendifLINKRAM := $(BUILDDIR)/ram.linkROMLDS := $(FIRMDIR)/rom.ldsLINKROM := $(BUILDDIR)/rom.link$(LINKRAM): $(RAMLDS) $(CONFIGFILE) $(call PRINTS,PP $(@F)) $(call preprocess2file,$<,$@,)$(LINKROM): $(ROMLDS) $(call PRINTS,PP $(@F)) $(call preprocess2file,$<,$@,)# Note: make sure -Wl,--gc-sections comes before -T in the linker options.# Having the latter first caused crashes on (at least) mini2g.$(BUILDDIR)/rockbox.elf : $$(OBJ) $(FIRMLIB) $(VOICESPEEXLIB) $(CORE_LIBS) $$(LINKRAM) $(call PRINTS,LD $(@F))$(CC) $(GCCOPTS) -nostdlib -o $@ $(OBJ) \ -L$(BUILDDIR)/firmware \ -L$(RBCODEC_BLD)/codecs $(call a2lnk, $(VOICESPEEXLIB)) \ -L$(BUILDDIR)/lib $(call a2lnk, $(CORE_LIBS)) \ -lgcc $(CORE_LDOPTS) -T$(LINKRAM) \ -Wl,-Map,$(BUILDDIR)/rockbox.map$(BUILDDIR)/rombox.elf : $$(OBJ) $(FIRMLIB) $(VOICESPEEXLIB) $(CORE_LIBS) $$(LINKROM) $(call PRINTS,LD $(@F))$(CC) $(GCCOPTS) -nostdlib -o $@ $(OBJ) \ -L$(BUILDDIR)/firmware \ -L$(RBCODEC_BLD)/codecs $(call a2lnk, $(VOICESPEEXLIB)) \ -L$(BUILDDIR)/lib $(call a2lnk, $(CORE_LIBS)) \ -lgcc $(CORE_LDOPTS) -T$(LINKROM) \ -Wl,-Map,$(BUILDDIR)/rombox.map$(BUILDDIR)/rockbox.bin : $(BUILDDIR)/rockbox.elf $(call PRINTS,OC $(@F))$(call objcopy,$<,$@)$(BUILDDIR)/rombox.bin : $(BUILDDIR)/rombox.elf $(call PRINTS,OC $(@F))$(call objcopy,$<,$@)$(BUILDDIR)/$(BINARY) : $(BUILDDIR)/rockbox.bin $(FLASHFILE) $(MKFIRMWARE_TOOL) $(call PRINTS,SCRAMBLE $(notdir $@)) $(MKFIRMWARE) $< $@$(MAXOUTFILE): $(call PRINTS,Creating $(@F)) $(SILENT)echo '#include "config.h"' > $(MAXINFILE) $(SILENT)echo "ROM_START" >> $(MAXINFILE) $(call preprocess2file,$(MAXINFILE),$(MAXOUTFILE)) $(SILENT)rm $(MAXINFILE)# iriver$(BUILDDIR)/rombox.iriver: $(BUILDDIR)/rombox.bin $(MKFIRMWARE_TOOL) $(call PRINTS,Build ROM file)$(MKFIRMWARE) $< $@endif # !APP_TYPEendif # !bootloadervoicetools: $(SILENT)$(MAKE) -C $(TOOLSDIR) CC=$(HOSTCC) AR=$(HOSTAR) rbspeexenc voicefont wavtrimtags: $(SILENT)rm -f TAGS $(SILENT)etags -o $(BUILDDIR)/TAGS $(filter-out %.o,$(SRC) $(OTHER_SRC))zip: $(BUILDDIR)/rockbox.zip7zip: $(BUILDDIR)/rockbox.7ztar: $(BUILDDIR)/rockbox.tarfontzip: BUILDZIPOPTS=-f 1fontzip: ZIPFILESUFFIX=-fontsfontzip: NODEPS=1fontzip: zipfont7zip: BUILDZIPOPTS=-f 1font7zip: ZIPFILESUFFIX=-fontsfont7zip: NODEPS=1font7zip: 7zipfullzip: BUILDZIPOPTS=-f 2fullzip: ZIPFILESUFFIX=-fullfullzip: zipfull7zip: BUILDZIPOPTS=-f 2full7zip: ZIPFILESUFFIX=-fullfull7zip: 7zipfulltar: BUILDZIPOPTS=-f 2fulltar: ZIPFILESUFFIX=-fullfulltar: tarifneq ($(NODEPS),)$(BUILDDIR)/rockbox.zip:else$(BUILDDIR)/rockbox.zip: buildendif $(call PRINTS,ZIP rockbox$(ZIPFILESUFFIX).zip) $(SILENT)$(TOOLSDIR)/buildzip.pl $(VERBOSEOPT) --app=$(APPLICATION) -m \"$(MODELNAME)\" -i \"$(TARGET_ID)\" -o $(BUILDDIR)/rockbox$(ZIPFILESUFFIX).zip -r "$(ROOTDIR)" --rbdir="$(RBDIR)" $(BUILDZIPOPTS) $(TARGET) $(BINARY)ifneq ($(REPRODUCIBLE_ZIP),) $(SILENT)strip-nondeterminism $(BUILDDIR)/rockbox$(ZIPFILESUFFIX).zipendifmapzip: $(SILENT)find . -name "*.map" | xargs zip rockbox-maps.zipelfzip: $(SILENT)find . -name "*.elf" | xargs zip rockbox-elfs.zipifneq ($(NODEPS),)$(BUILDDIR)/rockbox.7z:else$(BUILDDIR)/rockbox.7z: buildendif $(call PRINTS,7Z rockbox$(ZIPFILESUFFIX).7z) $(SILENT)$(TOOLSDIR)/buildzip.pl $(VERBOSEOPT) --app=$(APPLICATION) -m \"$(MODELNAME)\" -i \"$(TARGET_ID)\" -o $(BUILDDIR)/rockbox$(ZIPFILESUFFIX).7z -z "7za a -mx=9" -r "$(ROOTDIR)" --rbdir="$(RBDIR)" $(BUILDZIPOPTS) $(TARGET) $(BINARY)ifneq ($(NODEPS),)$(BUILDDIR)/rockbox.tar:else$(BUILDDIR)/rockbox.tar: buildendif $(SILENT)rm -f rockbox.tar $(call PRINTS,TAR $(notdir $@)) $(SILENT)$(TOOLSDIR)/buildzip.pl $(VERBOSEOPT) --app=$(APPLICATION) -m \"$(MODELNAME)\" -i \"$(TARGET_ID)\" -o $(BUILDDIR)/rockbox$(ZIPFILESUFFIX).tar -z "tar -cf" -r "$(ROOTDIR)" --rbdir="$(RBDIR)" $(BUILDZIPOPTS) $(TARGET) $(BINARY)fullgzip: ZIPFILESUFFIX=-fullfullgzip: fulltar gzipfullxz: ZIPFILESUFFIX=-fullfullxz: fulltar xzgzip: tar $(call PRINTS,GZIP rockbox$(ZIPFILESUFFIX).tar.gz) $(SILENT)gzip -f9 rockbox$(ZIPFILESUFFIX).tarxz: tar $(call PRINTS,XZ rockbox$(ZIPFILESUFFIX).tar.xz) $(SILENT)xz -f rockbox$(ZIPFILESUFFIX).tarmanual manual-pdf: $(SILENT)$(MAKE) -C $(MANUALDIR) OBJDIR=$(BUILDDIR)/manual manual-pdfmanual-html: $(SILENT)$(MAKE) -C $(MANUALDIR) OBJDIR=$(BUILDDIR)/manual manual-htmlmanual-zhtml: manual-zipmanual-txt: $(SILENT)$(MAKE) -C $(MANUALDIR) OBJDIR=$(BUILDDIR)/manual manual-txtmanual-ztxt: $(SILENT)$(MAKE) -C $(MANUALDIR) OBJDIR=$(BUILDDIR)/manual manual-txt-zipmanual-zip: $(SILENT)$(MAKE) -C $(MANUALDIR) OBJDIR=$(BUILDDIR)/manual manual-zipmanual-7zip: $(SILENT)$(MAKE) -C $(MANUALDIR) OBJDIR=$(BUILDDIR)/manual manual-7zipifdef TTS_ENGINEvoice: voicetools $(BUILDDIR)/apps/genlang-features $(SILENT)if [ -z "$$POOL" ] ; then \ export POOL="$(BUILDDIR)/voice-pool" ; \ fi;\ mkdir -p $${POOL} ;\ for lang in `echo $(VOICELANGUAGE) |sed "s/,/ /g"`; do $(TOOLSDIR)/voice.pl -V -l=$$lang -t=$(MODELNAME):`cat $(BUILDDIR)/apps/genlang-features` -i=$(TARGET_ID) -e="$(ENCODER)" -E="$(ENC_OPTS)" -s=$(TTS_ENGINE) -S="$(TTS_OPTS)"; donetalkclips: voicetools $(SILENT)if [ -z '$(TALKDIR)' ] ; then \ echo "Must specify TALKDIR"; \ else \ for lang in `echo $(VOICELANGUAGE) |sed "s/,/ /g"`; do $(TOOLSDIR)/voice.pl -C -l=$$lang -e="$(ENCODER)" -E="$(ENC_OPTS)" -s=$(TTS_ENGINE) -S="$(TTS_OPTS)" $(FORCE) "$(TALKDIR)" ; done \ fitalkclips-force: FORCE=-Ftalkclips-force: talkclipsendif# only simulators get a 'make install'ifneq (,$(findstring sdl,$(APP_TYPE)))simext1: $(SILENT)mkdir -p $@bininstall: $(BUILDDIR)/$(BINARY) @echo "Installing your rockbox binary in your '$(RBPREFIX)' dir" $(SILENT)cp $(BINARY) "$(RBPREFIX)/.rockbox/"install: simext1 @echo "Installing your build in your '$(RBPREFIX)' dir" $(SILENT)$(TOOLSDIR)/buildzip.pl $(VERBOSEOPT) --app=$(APPLICATION) -m "$(MODELNAME)" -i "$(TARGET_ID)" $(INSTALL) -z "zip -r0" -r "$(ROOTDIR)" --rbdir="$(RBDIR)" -f 0 $(TARGET) $(BINARY)fullinstall: simext1 @echo "Installing a full setup in your '$(RBPREFIX)' dir" $(SILENT)$(TOOLSDIR)/buildzip.pl $(VERBOSEOPT) --app=$(APPLICATION) -m "$(MODELNAME)" -i "$(TARGET_ID)" $(INSTALL) -z "zip -r0" -r "$(ROOTDIR)" --rbdir="$(RBDIR)" -f 2 $(TARGET) $(BINARY)ziginstall: zig install @echo "Installing your build in your '$(RBPREFIX)' dir" cd .. \ && mkdir -p $(RBPREFIX)/bin $(RBPREFIX)/share/rockbox \ && cp zig/zig-out/bin/rockboxd $(RBPREFIX)/bin \ && cp target/release/rockbox $(RBPREFIX)/bin \ && cp -r assets/* $(RBPREFIX)/share/rockboxsymlinkinstall: simext1 @echo "Installing a full setup with links in your '$(RBPREFIX)' dir" $(SILENT)$(TOOLSDIR)/buildzip.pl $(VERBOSEOPT) --app=$(APPLICATION) -m "$(MODELNAME)" -i "$(TARGET_ID)" $(INSTALL) -z "zip -r0" -r "$(ROOTDIR)" --rbdir="$(RBDIR)" -f 2 $(TARGET) $(BINARY) -lendif$(BUILDDIR)/apps/recorder/jpeg_load.o: $(ROOTDIR)/apps/recorder/jpeg_load.c mkdir -p $(BUILDDIR)/apps/recorder $(SILENT)$(CC) $(CFLAGS) -c -o $(BUILDDIR)/apps/recorder/jpeg_load.o $(ROOTDIR)/apps/recorder/jpeg_load.czig: lib cd .. \ && cargo build --locked -p rockbox-cli --release \ && cargo build --locked -p rockbox-server --release \ && cargo build --locked -p rockbox --release \ && cd zig && zig buildhelp: @echo "A few helpful make targets" @echo "" @echo "all - builds a full Rockbox (default), including tools" @echo "zig - builds Rockbox with Zig" @echo "bin - builds only the Rockbox.<target name> file" @echo "rocks - builds only plugins" @echo "codecs - builds only codecs" @echo "dep - regenerates make dependency database" @echo "clean - cleans a build directory (not tools)" @echo "veryclean - cleans the build and tools directories" @echo "manual - builds a manual (pdf)" @echo "manual-html - HTML manual" @echo "manual-zip - HTML manual (zipped)" @echo "manual-7zip - HTML manual (7zipped)" @echo "manual-txt - txt manual" @echo "zip - creates a rockbox.zip of your build (no fonts)" @echo "gzip - creates a rockbox.tar.gz of your build (no fonts)" @echo "xz - creates a rockbox.tar.xz of your build (no fonts)" @echo "7zip - creates a rockbox.7z of your build (no fonts)" @echo "fullzip - creates a rockbox-full.zip of your build (with fonts)" @echo "full7zip - creates a rockbox-full.7z of your build (with fonts)" @echo "fullgzip - creates a rockbox-full.tar.gz of your build (with fonts)" @echo "fullxz - creates a rockbox-full.tar.xz of your build (with fonts)" @echo "fontzip - creates rockbox-fonts.zip" @echo "font7zip - creates rockbox-fonts.7zip" @echo "mapzip - creates rockbox-maps.zip with all .map files" @echo "elfzip - creates rockbox-elfs.zip with all .elf files" @echo "tools - builds the tools only" @echo "voice - creates the voice clips (voice builds only)" @echo "voicetools - builds the voice tools only" @echo "talkclips - builds talkclips for everything under \$$TALKDIR, skipping existing clips" @echo "talkclips-force - builds talkclips for everything under \$$TALKDIR, overwriting all existing clips" @echo "install - installs your build (at \$$PREFIX, defaults to simdisk/ for simulators (no fonts))" @echo "fullinstall - installs your build (like install, but with fonts)" @echo "symlinkinstall - like fullinstall, but with links instead of copying files. (Good for developing on simulator)" @echo "reconf - rerun configure with the same selection"### general compile rules:# when source and object are in different locations (normal):$(BUILDDIR)/%.o: $(ROOTDIR)/%.c $(SILENT)mkdir -p $(dir $@) $(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) $(CFLAGS) -c $< -o $@$(BUILDDIR)/%.o: $(ROOTDIR)/%.S $(SILENT)mkdir -p $(dir $@) $(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) $(CFLAGS) -c $< -o $@# generated definitions for use in .S files$(BUILDDIR)/%_asmdefs.h: $(ROOTDIR)/%_asmdefs.c $(call PRINTS,ASMDEFS $(@F)) $(SILENT)mkdir -p $(dir $@) $(call asmdefs2file,$<,$@)# when source and object are both in BUILDDIR (generated code):%.o: %.c $(SILENT)mkdir -p $(dir $@) $(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) $(CFLAGS) -c $< -o $@%.o: %.S $(SILENT)mkdir -p $(dir $@) $(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) $(CFLAGS) -c $< -o $@Makefile: $(TOOLSDIR)/configureifneq (reconf,$(MAKECMDGOALS)) $(SILENT)echo "*** tools/configure is newer than Makefile. You should run 'make reconf'."endifreconf: $(SILENT$)$(TOOLSDIR)/configure $(CONFIGURE_OPTIONS)