FIX: don't crash on buggy keymap xml
[vuplus_xbmc] / Makefile.include.in
index 44c4f44..9a56cf9 100644 (file)
@@ -1,9 +1,10 @@
-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@
@@ -31,13 +32,18 @@ CC=@CC@
 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 \
@@ -48,7 +54,6 @@ DEFINES+= \
        @DEFS@ \
 
 ifeq ($(findstring osx,$(ARCH)), osx)
-       export MACOSX_DEPLOYMENT_TARGET=10.4
        INCLUDES+=-I@abs_top_srcdir@/xbmc/osx
 endif
 
@@ -57,77 +62,70 @@ ifeq ($(ARCH), powerpc-osx)
 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)
@@ -136,11 +134,13 @@ pch: $(PCH:.h=.h.gch)
        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