0881206b |
1 | ARCH ?= arm |
2 | CROSS_COMPILE ?= arm-linux- |
11913091 |
3 | CC = $(CROSS_COMPILE)gcc |
4 | AS = $(CROSS_COMPILE)as |
7fd42181 |
5 | CFLAGS += -Wall -ggdb -DLOADER |
6 | LDFLAGS += -ggdb -lpthread -lrt |
0881206b |
7 | ifndef DEBUG |
8 | CFLAGS += -O2 -fno-strict-aliasing |
9 | LDFLAGS += -s -O2 |
10 | endif |
7fd42181 |
11 | ifdef DBG |
12 | CFLAGS += -DDBG=$(DBG) |
13 | endif |
11913091 |
14 | |
0881206b |
15 | ifeq "$(ARCH)" "ia32" |
11913091 |
16 | ARCH = ia32 |
17 | CFLAGS += -m32 |
18 | LDFLAGS += -m32 |
19 | ASFLAGS += --32 |
20 | endif |
21 | ifeq "$(ARCH)" "arm" |
22 | ASFLAGS += -mfloat-abi=soft |
23 | OBJ += sys_cacheflush.o |
24 | endif |
25 | |
2ce69bdf |
26 | vpath %.c = ../common/ |
27 | |
7fd42181 |
28 | TARGET_S = ginge_sloader |
29 | TARGET_D = ginge_dyn |
30 | |
31 | OBJ += emu.o host_fb.o host_pnd.o cmn.o |
32 | OBJ_S += $(OBJ) loader.o loader_$(ARCH).o patches.o |
33 | OBJ_D += $(OBJ) dl.o |
34 | |
35 | all: $(TARGET_S) $(TARGET_D) |
11913091 |
36 | |
7fd42181 |
37 | $(TARGET_S): LDFLAGS += -Wl,-T script_$(ARCH).lds |
38 | $(TARGET_D): LDFLAGS += -ldl |
11913091 |
39 | |
7fd42181 |
40 | $(TARGET_S): $(OBJ_S) |
41 | $(CC) -o $@ $^ -static $(LDFLAGS) |
42 | |
43 | $(TARGET_D): $(OBJ_D) |
44 | $(CC) -o $@ $^ -shared $(LDFLAGS) |
11913091 |
45 | |
46 | clean: |
7fd42181 |
47 | $(RM) $(TARGET_S) $(TARGET_D) $(OBJ_S) $(OBJ_D) |
48 | |
49 | # basic deps |
50 | dl.o patches.o: override.c |
51 | *.o: header.h |
52 | |