A modern Music Player Daemon based on Rockbox open source high quality audio player
libadwaita audio rust zig deno mpris rockbox mpd
at master 59 lines 2.1 kB view raw
1# -*- Makefile -*- 2 3ifndef V 4SILENT=@ 5endif 6PRINTS=$(SILENT)$(call info,$(1)) 7 8$(OBJDIR)/%.o: %.c 9 $(SILENT)mkdir -p $(dir $@) 10 $(call PRINTS,CC $<)$(CC) $(CFLAGS) -c $< -o $@ 11 12$(OBJDIR)/%.o: %.S 13 $(SILENT)mkdir -p $(dir $@) 14 $(call PRINTS,CC $<)$(CC) $(CFLAGS) -c $< -o $@ 15 16# The echo stuff last in the dep update shell magic is to prevent any compiler 17# errors/warnings to cause an error code to get returned and thus stop the 18# build 19# 20# This script checks for the presence of $(BUILDDIR)/lang/lang.h and if it doesn't 21# alreay exist, it is created. This is because lots of files include this 22# *generated* file and if it doesn't exist when we generate the deps it is no 23# good. There's a -MG compiler option to cover for this case, but it doesn't 24# play nicely into this as it then adds a dependency to the lang.h file 25# without the proper path. 26# 27# The trailing sed hack for a range of files is present because how gcc works 28# for generating dependencies when the include file doesn't exist. Then it 29# makes the dependency without any path, and that breaks how things work for 30# us. We thus add the correct path for a few generated files! 31# 32$(DEPFILE): $(SOURCES) 33 $(SILENT)mkdir -p $(dir $(DEPFILE)) 34 $(SILENT)rm -f $(DEPFILE) 35 $(SILENT)(for each in $(SOURCES) x; do \ 36 if test "$$each" = "credits.c"; then \ 37 del="$$del$(BUILDDIR)/credits.raw"; \ 38 touch $(BUILDDIR)/credits.raw; \ 39 fi; \ 40 if test "x" != "$$each"; then \ 41 obj=`echo $$each | sed -e 's/\.[cS]/.o/'`; \ 42 $(CC) -MG -MM -MT "$(OBJDIR)/$$obj" $(CFLAGS) $$each 2>/dev/null; \ 43 fi; \ 44 if test -n "$$del"; then \ 45 rm $$del; \ 46 del=""; \ 47 fi \ 48 done | sed -e "s:[^[:space:]]*lang.h:$(OBJDIR)/lang/lang.h:" \ 49 -e "s:[^[:space:]]*sysfont.h:$(BUILDDIR)/sysfont.h:" \ 50 -e "s:[^[:space:]]*max_language_size.h:$(BUILDDIR)/max_language_size.h:" \ 51 -e "s: bitmaps/: $(BUILDDIR)/bitmaps/:g" \ 52 -e "s: pluginbitmaps/: $(BUILDDIR)/pluginbitmaps/:g" \ 53 > $(DEPFILE); \ 54 echo "oo" > /dev/null ) 55 56tags: 57 $(SILENT)(for d in $(DIRS); do \ 58 etags -o $(OBJDIR)/TAGS -a $$d/*.[ch]; \ 59 done)