forked from iPodLinux/hotdog
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
90 lines (81 loc) · 1.85 KB
/
Makefile
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
ifeq ($(OSTYPE),)
OSTYPE := $(shell uname -s)
endif
ifeq ($(HOST_CPU),)
HOST_CPU := $(shell uname -m)
endif
ifeq ($(OSTYPE),Darwin)
PREFIX =
ifdef DEBUG
MYCFLAGS = -DDARWIN -g -pg
else
ifeq ($(HOST_CPU),i386)
MYCFLAGS = -DDARWIN -O3 -march=i386 -fomit-frame-pointer -funroll-loops
else
MYCFLAGS = -DDARWIN -O3 -mcpu=750 -maltivec -mabi=altivec -fomit-frame-pointer -funroll-loops
endif
endif
LDFLAGS = -framework Foundation -framework Cocoa
endif
ifeq ($(OSTYPE),Linux)
ifdef DEBUG
MYCFLAGS = -g -pg
else
MYCFLAGS = -O3 -fomit-frame-pointer -funroll-loops
endif
LDFLAGS = -lc
endif
ifneq ($(IPOD),)
PNGINCLUDE ?= ./libs/libpng
PNGLIB ?= ./libs/libpng
JPEGINCLUDE ?= ./libs/libjpeg
JPEGLIB ?= ./libs/libjpeg
ZINCLUDE ?= ./libs/zlib
ZLIB ?= ./libs/zlib
LDFLAGS = -Wl,-elf2flt
MYCFLAGS = -DIPOD -I$(PNGINCLUDE) -I$(JPEGINCLUDE) -I$(ZINCLUDE) -O3 -funroll-loops
ifdef DEBUG
LDFLAGS = -pg
endif
else
MYCFLAGS+= `libpng-config --cflags`
endif
ifdef IPOD
CROSS ?= arm-uclinux-elf
CC = $(CROSS)-gcc
LD = $(CROSS)-ld
AR = $(CROSS)-ar rc
AR2 = $(CROSS)-ranlib
CPPFLAGS = -DIPOD
OBJDIR = ipod
else
CC ?= gcc
LD ?= ld
AR = ar rc
AR2 = ranlib
AS = as
OBJDIR = x11
endif
MYCFLAGS+= -Wall
LIB = $(OBJDIR)/libhotdog.a
LIBOBJS = $(OBJDIR)/hotdog.o $(OBJDIR)/hotdog_png.o $(OBJDIR)/hotdog_jpeg.o \
$(OBJDIR)/hotdog_ipg.o $(OBJDIR)/hotdog_font.o $(OBJDIR)/hotdog_animation.o \
$(OBJDIR)/hotdog_canvas.o $(OBJDIR)/hotdog_surface.o \
$(OBJDIR)/hotdog_ops.o $(OBJDIR)/hotdog_primitive.o $(OBJDIR)/zsort.o
ifdef IPOD
LIBOBJS += $(OBJDIR)/hotdog_lcd.o
endif
all: $(LIB)
$(LIB): $(OBJDIR) $(LIBOBJS)
$(RM) $(LIB)
$(AR) $(LIB) $(LIBOBJS)
$(AR2) $(LIB)
$(OBJDIR):
mkdir $(OBJDIR)
$(OBJDIR)/%.o: %.c
$(CC) $(CFLAGS) $(MYCFLAGS) -c -o $@ $<
$(OBJDIR)/%.o: %.S
$(CC) $(CPPFLAGS) -c -o $@ $<
clean:
$(RM) *.o *.elf *.elf2flt *.a *.gdb *~
$(RM) -rf ipod x11