Subversion Repositories freemyipod

Rev

Rev 976 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
976 user890104 1
NAME := ipodscsi
2
 
3
ifeq ($(shell uname),WindowsNT)
4
CCACHE :=
5
else
6
CCACHE := $(shell which ccache)
7
endif
8
 
9
CC      := $(CCACHE) gcc
10
LD      := $(CCACHE) gcc
11
 
12
CFLAGS  += -Os -fomit-frame-pointer "-DDFUIMAGE=\"$(DFUIMAGE)\""
13
LDFLAGS += -Wl,-s
14
 
15
preprocess = $(shell $(CC) $(PPCFLAGS) $(2) -E -P -x c $(1) | grep -v "^\#")
16
preprocesspaths = $(shell $(CC) $(PPCFLAGS) $(2) -E -P -x c $(1) | grep -v "^\#" | sed -e "s:^..*:$(dir $(1))&:" | sed -e "s:^\\./::")
17
 
18
REVISION := $(shell svnversion .)
19
REVISIONINT := $(shell echo $(REVISION) | sed -e "s/[^0-9].*$$//")
20
 
21
SRC := $(call preprocesspaths,SOURCES,-I. -I..)
22
OBJ := $(SRC:%.c=build/%.o)
23
OBJ := $(OBJ:%.S=build/%.o)
24
OBJ := $(OBJ:%.rc=build/%.o)
25
 
26
all: $(NAME)
27
 
28
-include $(OBJ:%=%.dep)
29
 
977 user890104 30
$(NAME): build/$(NAME)
976 user890104 31
 
977 user890104 32
build/$(NAME): $(OBJ)
976 user890104 33
	@echo [LD]     $@
34
	@$(LD) -o $@ $(OBJ) $(LDFLAGS)
35
 
36
build/%.o: %.c build/version.h
37
	@echo [CC]     $<
38
ifeq ($(shell uname),WindowsNT)
39
	@-if not exist $(subst /,\,$(dir $@)) md $(subst /,\,$(dir $@))
40
else
41
	@-mkdir -p $(dir $@)
42
endif
43
	@$(CC) -c $(CFLAGS) -o $@ $<
44
	@$(CC) -MM $(CFLAGS) $< > $@.dep.tmp
45
	@sed -e "s|.*:|$@:|" < $@.dep.tmp > $@.dep
46
ifeq ($(shell uname),WindowsNT)
47
	@sed -e "s/.*://" -e "s/\\$$//" < $@.dep.tmp | fmt -1 | sed -e "s/^ *//" -e "s/$$/:/" >> $@.dep
48
else
49
	@sed -e 's/.*://' -e 's/\\$$//' < $@.dep.tmp | fmt -1 | sed -e 's/^ *//' -e 's/$$/:/' >> $@.dep
50
endif
51
	@rm -f $@.dep.tmp
52
 
53
build/%.o: %.S build/version.h
54
	@echo [CC]     $<
55
ifeq ($(shell uname),WindowsNT)
56
	@-if not exist $(subst /,\,$(dir $@)) md $(subst /,\,$(dir $@))
57
else
58
	@-mkdir -p $(dir $@)
59
endif
60
	@$(CC) -c $(CFLAGS) -o $@ $<
61
	@$(CC) -MM $(CFLAGS) $< > $@.dep.tmp
62
	@sed -e "s|.*:|$@:|" < $@.dep.tmp > $@.dep
63
ifeq ($(shell uname),WindowsNT)
64
	@sed -e "s/.*://" -e "s/\\$$//" < $@.dep.tmp | fmt -1 | sed -e "s/^ *//" -e "s/$$/:/" >> $@.dep
65
else
66
	@sed -e 's/.*://' -e 's/\\$$//' < $@.dep.tmp | fmt -1 | sed -e 's/^ *//' -e 's/$$/:/' >> $@.dep
67
endif
68
	@rm -f $@.dep.tmp
69
 
70
build/%.o: %.rc
71
	@echo [WINRES] $<
72
ifeq ($(shell uname),WindowsNT)
73
	@-if not exist $(subst /,\,$(dir $@)) md $(subst /,\,$(dir $@))
74
else
75
	@-mkdir -p $(dir $@)
76
endif
77
	@windres -i $< -o $@ 
78
 
79
build/version.h: version.h ../../.svn/entries
80
	@echo [PP]     $<
81
ifeq ($(shell uname),WindowsNT)
82
	@-if not exist build md build
83
	@sed -e "s/\$$REVISION\$$/$(REVISION)/" -e "s/\$$REVISIONINT\$$/$(REVISIONINT)/" < $< > $@
84
else
85
	@-mkdir -p build
86
	@sed -e 's/\$$REVISION\$$/$(REVISION)/' -e 's/\$$REVISIONINT\$$/$(REVISIONINT)/' < $< > $@
87
endif
88
 
89
clean:
90
	@rm -rf build
91
 
92
.PHONY: all clean $(NAME)