-AR=ar
+AR=@AR@
ARFLAGS=crus
RM=rm -rf
SHELL=@SHELL@
ARCH=@ARCH@
abs_top_srcdir=@abs_top_srcdir@
+rel_top_srcdir=$(subst $(abspath $(abs_top_srcdir))/,,$(abspath $(CURDIR))/)
prefix=@prefix@
exec_prefix=@exec_prefix@
bindir=@bindir@
CXXFLAGS+=@CXXFLAGS@
CFLAGS+=@CFLAGS@
LDFLAGS+=@LDFLAGS@
-INCLUDES+=$(sort @INCLUDES@)
INCLUDES+=-I@abs_top_srcdir@/lib
INCLUDES+=-I@abs_top_srcdir@/xbmc
+INCLUDES+=$(sort @INCLUDES@)
ifneq (@USE_EXTERNAL_FFMPEG@,1)
INCLUDES+=-I@abs_top_srcdir@/lib/ffmpeg
endif
INCLUDES+=-I@abs_top_srcdir@/xbmc/linux
+INCLUDES+=-I@abs_top_srcdir@/xbmc/cores/dvdplayer
+ifeq (@USE_OMXPLAYER@,1)
+INCLUDES+=-I@abs_top_srcdir@/xbmc/cores/AudioEngine
+INCLUDES+=-I@abs_top_srcdir@/xbmc/cores/AudioEngine/Utils
+endif
DEFINES+= \
@ARCH_DEFINES@ \
-D_FILE_DEFINED \
@DEFS@ \
ifeq ($(findstring osx,$(ARCH)), osx)
- export MACOSX_DEPLOYMENT_TARGET=10.4
INCLUDES+=-I@abs_top_srcdir@/xbmc/osx
endif
endif
ifneq ($(V), 1)
- SILENT_CPP=@echo "CPP $@";
- SILENT_CC =@echo "CC $@";
- SILENT_S =@echo "S $@";
- SILENT_GCH=@echo "GCH $@";
- SILENT_MM =@echo "MM $@";
- SILENT_AR =@echo "AR $@";
+ SILENT_CPP=@echo "CPP $(rel_top_srcdir)$@";
+ SILENT_CC =@echo "CC $(rel_top_srcdir)$@";
+ SILENT_S =@echo "S $(rel_top_srcdir)$@";
+ SILENT_GCH=@echo "GCH $(rel_top_srcdir)$@";
+ SILENT_MM =@echo "MM $(rel_top_srcdir)$@";
+ SILENT_AR =@echo "AR $(rel_top_srcdir)$@";
+ SILENT_LD =@echo "LD $(rel_top_srcdir)$@";
endif
+OBJS+=$(filter %.o,$(SRCS:.cpp=.o))
+OBJS+=$(filter %.o,$(SRCS:.c=.o))
+OBJS+=$(filter %.o,$(SRCS:.S=.o))
+OBJS+=$(filter %.o,$(SRCS:.mm=.o))
+OBJS+=$(filter %.o,$(SRCS:.m=.o))
+
+DEPS+=$(filter %.P,$(OBJS:.o=.P))
+
+GEN_DEPS=\
+ cp $*.d $*.P \
+ && sed -e 's/\#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
+ -e '/^$$/ d' -e 's/$$/ :/' < $*.d >> $*.P \
+ && rm -f $*.d \
+ || ( rm -f $*.P $@ && exit 1 )
+
+%.o: %.cpp
+ @rm -f $@
+ $(SILENT_CPP) $(CXX) -MF $*.d -MD -c $(CXXFLAGS) $(DEFINES) $(INCLUDES) $< -o $@ \
+ && $(GEN_DEPS)
+
+%.o: %.cc
+ @rm -f $@
+ $(SILENT_CPP) $(CXX) -MF $*.d -MD -c $(CXXFLAGS) $(DEFINES) $(INCLUDES) $< -o $@ \
+ && $(GEN_DEPS)
+
+%.o: %.c
+ @rm -f $@
+ $(SILENT_CC) $(CC) -MF $*.d -MD -c $(CFLAGS) $(DEFINES) $(INCLUDES) $< -o $@ \
+ && $(GEN_DEPS)
+
+%.o: %.C
+ @rm -f $@
+ $(SILENT_CPP) $(CXX) -MF $*.d -MD -c $(CFLAGS) $(DEFINES) $(INCLUDES) $< -o $@ \
+ && $(GEN_DEPS)
+
+%.o: %.S
+ @rm -f $@
+ $(SILENT_CC) $(CC) -c $(CFLAGS) $(DEFINES) $(INCLUDES) $< -o $@
-.cpp.o:
- @rm -f ${<:.cpp=.o}
- $(SILENT_CPP) $(CXX) -MD -c $(CXXFLAGS) $(DEFINES) $(INCLUDES) $< -o ${<:.cpp=.o}
- @cp $*.d $*.P; \
- sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
- -e '/^$$/ d' -e 's/$$/ :/' < $*.d >> $*.P; \
- rm -f $*.d
-
-.cc.o:
- @rm -f ${<:.cc=.o}
- $(SILENT_CC) $(CXX) -MD -c $(CXXFLAGS) $(DEFINES) $(INCLUDES) $< -o ${<:.cc=.o}
- @cp $*.d $*.P; \
- sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
- -e '/^$$/ d' -e 's/$$/ :/' < $*.d >> $*.P; \
- rm -f $*.d
-
-.c.o:
- @rm -f ${<:.c=.o}
- $(SILENT_CC) $(CC) -MD -c $(CFLAGS) $(DEFINES) $(INCLUDES) $< -o ${<:.c=.o}
- @cp $*.d $*.P; \
- sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
- -e '/^$$/ d' -e 's/$$/ :/' < $*.d >> $*.P; \
- rm -f $*.d
-
-.C.o:
- @rm -f ${<:.C=.o}
- $(SILENT_CC) $(CC) -MD -c $(CFLAGS) $(DEFINES) $(INCLUDES) $< -o ${<:.C=.o}
- @cp $*.d $*.P; \
- sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
- -e '/^$$/ d' -e 's/$$/ :/' < $*.d >> $*.P; \
- rm -f $*.d
-
-.S.o:
- @rm -f ${<:.S=.o}
- $(SILENT_CC) $(CC) -c $(CFLAGS) $(DEFINES) $(INCLUDES) $< -o ${<:.S=.o}
%.h.gch : %.h
$(SILENT_GCH) $(CXX) -c $(CFLAGS) $(DEFINES) $(INCLUDES) $< -o $@
-.m.o:
- @rm -f ${<:.m=.o}
- $(SILENT_MM) $(CXX) -MD -c $(CXXFLAGS) $(DEFINES) $(INCLUDES) $< -o ${<:.m=.o}
- @cp $*.d $*.P; \
- sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
- -e '/^$$/ d' -e 's/$$/ :/' < $*.d >> $*.P; \
- rm -f $*.d
-
-.mm.o:
- @rm -f ${<:.mm=.o}
- $(SILENT_MM) $(CXX) -MD -c $(CXXFLAGS) $(DEFINES) $(INCLUDES) $< -o ${<:.mm=.o}
- @cp $*.d $*.P; \
- sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
- -e '/^$$/ d' -e 's/$$/ :/' < $*.d >> $*.P; \
- rm -f $*.d
+%.o: %.m
+ @rm -f $@
+ $(SILENT_MM) $(CXX) -MF $*.d -MD -c $(CXXFLAGS) $(DEFINES) $(INCLUDES) $< -o $@ \
+ && $(GEN_DEPS)
+
+%.o: %.mm
+ @rm -f $@
+ $(SILENT_MM) $(CXX) -MF $*.d -MD -c $(CXXFLAGS) $(DEFINES) $(INCLUDES) $< -o $@ \
+ && $(GEN_DEPS)
-OBJS+=$(filter %.o,$(SRCS:.cpp=.o))
-OBJS+=$(filter %.o,$(SRCS:.c=.o))
-OBJS+=$(filter %.o,$(SRCS:.S=.o))
-OBJS+=$(filter %.o,$(SRCS:.mm=.o))
-OBJS+=$(filter %.o,$(SRCS:.m=.o))
-.PHONY : lib pch clean distclean distclean_evil
+.PHONY : lib pch clean distclean distclean_evil check testsuite
$(LIB): $(OBJS)
$(SILENT_AR) $(AR) $(ARFLAGS) $(LIB) $(OBJS)
for d in $(DIRS); do (cd "$$d"; $(MAKE) pch ); done
clean:
- $(RM) $(OBJS) *.o $(LIB) $(SLIB) $(CLEAN_FILES) $(PCH:.h=.h.gch) $(OBJS:.o=.P)
+ $(RM) $(OBJS) *.o $(LIB) $(SLIB) $(CLEAN_FILES) $(PCH:.h=.h.gch) $(DEPS)
for d in $(DIRS); do (if test -f "$$d/Makefile"; then ($(MAKE) -C "$$d" clean); fi ); done
+ for d in $(CHECK_DIRS) $(GTEST_DIR); do if test -f $$d/Makefile; then $(MAKE) -C $$d $@; fi; done
distclean:
- $(RM) $(OBJS) *.o $(LIB) $(SLIB) $(STATICLIB) $(CLEAN_FILES) $(DISTCLEAN_FILES) $(PCH:.h=.h.gch) $(OBJS:.o=.P)
+ $(RM) $(OBJS) *.o $(LIB) $(SLIB) $(STATICLIB) $(CLEAN_FILES) $(DISTCLEAN_FILES) $(PCH:.h=.h.gch) $(DEPS)
for d in $(DIRS); do (if test -f "$$d/Makefile"; then ($(MAKE) -C "$$d" distclean || $(MAKE) -C "$$d" clean); fi ); done
+ for d in $(CHECK_DIRS) $(GTEST_DIR); do (if test -f "$$d/Makefile"; then ($(MAKE) -C "$$d" $@ || $(MAKE) -C "$$d" clean); fi ); done
if [ "$(shell pwd -P)" = "$(abs_top_srcdir)" ] || \
[ "$(shell pwd)" = "$(abs_top_srcdir)" ]; then rm -f $(AUTOGENERATED_MAKEFILES) Makefile.include Makefile; fi