Subversion Repositories freemyipod

Rev

Rev 462 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 462 Rev 870
Line 1... Line 1...
1
NAME := uclstub
1
NAME := uclstub
2
 
2
 
3
ifeq ($(shell uname),WindowsNT)
3
ifeq ($(shell uname),WindowsNT)
4
CCACHE :=
4
CCACHE :=
5
else
5
else
6
CCACHE := $(shell which ccache)
6
CCACHE := $(shell which ccache)
7
endif
7
endif
8
 
8
 
9
CROSS   ?= arm-elf-eabi-
9
CROSS   ?= arm-elf-eabi-
10
CC      := $(CCACHE) $(CROSS)gcc
10
CC      := $(CCACHE) $(CROSS)gcc
11
AS      := $(CROSS)as
11
AS      := $(CROSS)as
12
LD      := $(CROSS)ld
12
LD      := $(CROSS)ld
13
OBJCOPY := $(CROSS)objcopy
13
OBJCOPY := $(CROSS)objcopy
14
 
14
 
15
CFLAGS  += -Os -fno-pie -fno-stack-protector -fomit-frame-pointer -I. -ffunction-sections -fdata-sections -mcpu=arm940t
15
CFLAGS  += -Os -fno-pie -fno-stack-protector -fomit-frame-pointer -I. -ffunction-sections -fdata-sections -mcpu=arm940t -marm
16
LDFLAGS += "$(shell $(CC) -print-libgcc-file-name)" --gc-sections
16
LDFLAGS += "$(shell $(CC) -print-libgcc-file-name)" --gc-sections
17
 
17
 
18
SRC := ucl.S
18
SRC := ucl.S
19
OBJ := $(SRC:%.S=build/%.o)
19
OBJ := $(SRC:%.S=build/%.o)
20
 
20
 
21
all: $(NAME)
21
all: $(NAME)
22
 
22
 
23
$(NAME): build/$(NAME).bin
23
$(NAME): build/$(NAME).bin
24
 
24
 
25
build/$(NAME).bin: build/$(NAME).elf
25
build/$(NAME).bin: build/$(NAME).elf
26
	@echo [OC]     $<
26
	@echo [OC]     $<
27
	@$(OBJCOPY) -O binary $^ $@
27
	@$(OBJCOPY) -O binary $^ $@
28
 
28
 
29
build/$(NAME).elf: $(OBJ) ls.x
29
build/$(NAME).elf: $(OBJ) ls.x
30
	@echo [LD]     $@
30
	@echo [LD]     $@
31
	@$(LD) $(LDFLAGS) -T ls.x -o $@ $(OBJ)
31
	@$(LD) $(LDFLAGS) -T ls.x -o $@ $(OBJ)
32
 
32
 
33
build/%.o: %.S
33
build/%.o: %.S
34
	@echo [CC]     $<
34
	@echo [CC]     $<
35
ifeq ($(shell uname),WindowsNT)
35
ifeq ($(shell uname),WindowsNT)
36
	@-if not exist $(subst /,\,$(dir $@)) md $(subst /,\,$(dir $@))
36
	@-if not exist $(subst /,\,$(dir $@)) md $(subst /,\,$(dir $@))
37
else
37
else
38
	@-mkdir -p $(dir $@)
38
	@-mkdir -p $(dir $@)
39
endif
39
endif
40
	@$(CC) -c $(CFLAGS) -o $@ $<
40
	@$(CC) -c $(CFLAGS) -o $@ $<
41
 
41
 
42
clean:
42
clean:
43
	rm -rf build
43
	rm -rf build
44
 
44
 
45
.PHONY: all clean $(NAME)
45
.PHONY: all clean $(NAME)