aboutsummaryrefslogtreecommitdiff
path: root/Makefile.include.in
blob: 58db900d7949444d6c6b6e3a7759d332b8166537 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
AR=ar
ARFLAGS=crus
RM=rm -rf
SHELL=/bin/bash
ARCH=@ARCH@
abs_top_srcdir=@abs_top_srcdir@
prefix=@prefix@
CXX=@CXX@
CC=@CC@
CXXFLAGS+=@CXXFLAGS@
CXXFLAGS+=@DEBUG_FLAGS@
CFLAGS+=@CFLAGS@
CFLAGS+=@DEBUG_FLAGS@
INCLUDES+=@INCLUDES@
DEFINES+= \
	-D_LINUX \
	-D_FILE_DEFINED \
	-D_REENTRANT \
	-D_LARGEFILE64_SOURCE \
	-D_FILE_OFFSET_BITS=64 \
	-DINSTALL_PATH="\"@prefix@/share/xbmc\"" \
	@SDL_DEFINES@ \
	@ARCH_DEFINES@ \
	@DEFS@ \

ifeq ($(findstring osx,$(ARCH)), osx)
	export MACOSX_DEPLOYMENT_TARGET=10.4
endif

ifeq ($(ARCH), powerpc-osx)
	BUNDLE1_O=-lbundle1.o
endif

.cpp.o:
	@rm -f ${<:.cpp=.o}
	$(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}
	$(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}
	$(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}
	$(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}
	$(CC) -c $(CFLAGS) $(DEFINES) $(INCLUDES) $< -o ${<:.S=.o}

%.h.gch : %.h
	$(CXX) -c $(CFLAGS) $(DEFINES) $(INCLUDES) $< -o $@

.m.o:
	@rm -f ${<:.m=.o}
	$(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}
	$(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

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

$(LIB): $(OBJS)
	$(AR) $(ARFLAGS) $(LIB) $(OBJS)

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)
	for d in $(DIRS); do (if test -f "$$d/Makefile"; then ($(MAKE) -C "$$d" clean); fi ); done

distclean:
	$(RM) $(OBJS) *.o $(LIB) $(SLIB) $(STATICLIB) $(CLEAN_FILES) $(DISTCLEAN_FILES) $(PCH:.h=.h.gch) $(OBJS:.o=.P)
	for d in $(DIRS); do (if test -f "$$d/Makefile"; then ($(MAKE) -C "$$d" distclean || $(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