From c6b3d38a156dd624760a8eb1bb374affd43b4f2a Mon Sep 17 00:00:00 2001 From: Björn Stenberg Date: Thu, 20 Nov 2008 11:27:31 +0000 Subject: New makefile solution: A single invocation of 'make' to build the entire tree. Fully controlled dependencies give faster and more correct recompiles. Many #include lines adjusted to conform to the new standards. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19146 a1c6a512-1295-4272-9138-f99709370657 --- apps/codecs/libmad/Makefile | 50 -------------------------------------- apps/codecs/libmad/frame.c | 2 +- apps/codecs/libmad/global.h | 2 +- apps/codecs/libmad/libmad.make | 54 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 56 insertions(+), 52 deletions(-) delete mode 100644 apps/codecs/libmad/Makefile create mode 100644 apps/codecs/libmad/libmad.make (limited to 'apps/codecs/libmad') diff --git a/apps/codecs/libmad/Makefile b/apps/codecs/libmad/Makefile deleted file mode 100644 index 4d838db74f..0000000000 --- a/apps/codecs/libmad/Makefile +++ /dev/null @@ -1,50 +0,0 @@ -# __________ __ ___. -# Open \______ \ ____ ____ | | _\_ |__ _______ ___ -# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / -# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < -# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ -# \/ \/ \/ \/ \/ -# $Id$ -# - -INCLUDES=-I$(APPSDIR) -I.. -I. -I$(FIRMDIR)/include -I$(FIRMDIR)/export \ - -I$(FIRMDIR)/common -I$(FIRMDIR)/drivers -I$(BUILDDIR) - -ifdef APPEXTRA - INCLUDES += $(patsubst %,-I$(APPSDIR)/%,$(subst :, ,$(APPEXTRA))) -endif - -# NOTE: FPM_ define has been moved to global.h -MADOPTS = -UDEBUG -DNDEBUG -O2 - -# We build libmad separately for mpegplayer -ifdef MPEGPLAYER -EXTRA_DEFINES += -DMPEGPLAYER -endif - -CFLAGS = $(INCLUDES) $(GCCOPTS) $(TARGET_INC) $(MADOPTS) $(TARGET) \ -$(EXTRA_DEFINES) -DMEM=${MEMORYSIZE} $(PROFILE_OPTS) - -# This sets up 'SRC' based on the files mentioned in SOURCES -include $(TOOLSDIR)/makesrc.inc - -SOURCES = $(SRC) -OBJS2 := $(SRC:%.c=$(OBJDIR)/%.o) -OBJS = $(patsubst %.S, $(OBJDIR)/%.o, $(OBJS2)) -DEPFILE = $(OBJDIR)/dep-libmad -DIRS = - -all: $(OUTPUT) - -$(OUTPUT): $(OBJS) - $(call PRINTS,AR+RANLIB $(@F))$(AR) ruv $@ $+ >/dev/null 2>&1 - $(SILENT)$(RANLIB) $@ - -include $(TOOLSDIR)/make.inc - -clean: - $(call PRINTS,cleaning libmad)rm -f $(OBJS) $(OUTPUT) $(DEPFILE) - -ifneq ($(MAKECMDGOALS),clean) --include $(DEPFILE) -endif diff --git a/apps/codecs/libmad/frame.c b/apps/codecs/libmad/frame.c index 2c7fdca199..3fb971d3e1 100644 --- a/apps/codecs/libmad/frame.c +++ b/apps/codecs/libmad/frame.c @@ -31,7 +31,7 @@ # include "timer.h" # include "layer12.h" # include "layer3.h" -# include "../lib/codeclib.h" +# include "codeclib.h" static unsigned long const bitrate_table[5][15] = { diff --git a/apps/codecs/libmad/global.h b/apps/codecs/libmad/global.h index 1dad4d5583..93dfd0a13f 100644 --- a/apps/codecs/libmad/global.h +++ b/apps/codecs/libmad/global.h @@ -19,7 +19,7 @@ * $Id$ */ -#include "../codec.h" +#include "codeclib.h" # ifndef LIBMAD_GLOBAL_H # define LIBMAD_GLOBAL_H diff --git a/apps/codecs/libmad/libmad.make b/apps/codecs/libmad/libmad.make new file mode 100644 index 0000000000..f0334956c1 --- /dev/null +++ b/apps/codecs/libmad/libmad.make @@ -0,0 +1,54 @@ +# __________ __ ___. +# Open \______ \ ____ ____ | | _\_ |__ _______ ___ +# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / +# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < +# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ +# \/ \/ \/ \/ \/ +# $Id: Makefile 19082 2008-11-10 23:54:24Z zagor $ +# + +# we need to build two different mad libraries +# (one for codec, one for mpegplayer) +# so a little trickery is necessary + +MADFLAGS = $(CODECFLAGS) -UDEBUG -DNDEBUG -I$(APPSDIR)/codecs/libmad +MPEGMADFLAGS = $(MADFLAGS) -DMPEGPLAYER + +# libmad +MADLIB := $(CODECDIR)/libmad.a +MADLIB_SRC := $(call preprocess, $(APPSDIR)/codecs/libmad/SOURCES) +MADLIB_OBJ := $(call c2obj, $(MADLIB_SRC)) +OTHER_SRC += $(MADLIB_SRC) + +$(MADLIB): $(MADLIB_OBJ) + $(call PRINTS,AR $(@F))$(AR) rs $@ $^ >/dev/null 2>&1 + +# libmad-mpeg +MPEGMADLIB := $(CODECDIR)/libmad-mpeg.a +MPEGMADLIB_SRC := $(call preprocess, $(APPSDIR)/codecs/libmad/SOURCES) +MPEGMADLIB_OBJ := $(subst .c,.o,$(subst .S,.o,$(subst $(ROOTDIR)/apps/codecs/libmad,$(BUILDDIR)/apps/codecs/libmad-mpeg,$(MPEGMADLIB_SRC)))) + +$(MPEGMADLIB): $(MPEGMADLIB_OBJ) + $(call PRINTS,AR $(@F))$(AR) rs $@ $^ >/dev/null 2>&1 + +# pattern rules + +$(CODECDIR)/libmad-mpeg/%.o : $(ROOTDIR)/apps/codecs/libmad/%.c + $(SILENT)mkdir -p $(dir $@) + $(call PRINTS,CC $(subst $(ROOTDIR)/,,$<)) \ + $(CC) $(MPEGMADFLAGS) -c $< -o $@ + +$(CODECDIR)/libmad-mpeg/%.o : $(ROOTDIR)/apps/codecs/libmad/%.S + $(SILENT)mkdir -p $(dir $@) + $(call PRINTS,CC $(subst $(ROOTDIR)/,,$<)) \ + $(CC) $(MPEGMADFLAGS) -c $< -o $@ + +$(CODECDIR)/libmad/%.o: $(ROOTDIR)/apps/codecs/libmad/%.c + $(SILENT)mkdir -p $(dir $@) + $(call PRINTS,CC $(subst $(ROOTDIR)/,,$<)) \ + $(CC) $(MADFLAGS) -c $< -o $@ + +$(CODECDIR)/libmad/%.o: $(ROOTDIR)/apps/codecs/libmad/%.S + $(SILENT)mkdir -p $(dir $@) + $(call PRINTS,CC $(subst $(ROOTDIR)/,,$<)) \ + $(CC) $(MADFLAGS) -c $< -o $@ -- cgit v1.2.3