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 |
3d3fa63b |
23 | OBJ += sys_cacheflush.o emu_arm.o |
11913091 |
24 | endif |
4d045184 |
25 | ifdef PND |
26 | CFLAGS += -DPND |
27 | OBJ += host_pnd.o |
cf0a08ff |
28 | TAG = _pnd |
4d045184 |
29 | endif |
30 | ifdef WIZ |
31 | CFLAGS += -DWIZ |
6ca08393 |
32 | OBJ += host_wiz.o wiz_video_arm.o |
cf0a08ff |
33 | TAG = _wiz |
4d045184 |
34 | endif |
11913091 |
35 | |
2ce69bdf |
36 | vpath %.c = ../common/ |
6ca08393 |
37 | vpath %.s = ../common/ |
2ce69bdf |
38 | |
cf0a08ff |
39 | TARGET_S = ginge_sloader$(TAG) |
40 | TARGET_D = ginge_dyn$(TAG) |
7fd42181 |
41 | |
4d045184 |
42 | OBJ += emu.o host_fb.o cmn.o |
7fd42181 |
43 | OBJ_S += $(OBJ) loader.o loader_$(ARCH).o patches.o |
44 | OBJ_D += $(OBJ) dl.o |
45 | |
46 | all: $(TARGET_S) $(TARGET_D) |
11913091 |
47 | |
7fd42181 |
48 | $(TARGET_S): LDFLAGS += -Wl,-T script_$(ARCH).lds |
cf0a08ff |
49 | $(TARGET_D): LDFLAGS += -ldl -Wl,--version-script=ginge_dyn.symver |
11913091 |
50 | |
7fd42181 |
51 | $(TARGET_S): $(OBJ_S) |
52 | $(CC) -o $@ $^ -static $(LDFLAGS) |
53 | |
54 | $(TARGET_D): $(OBJ_D) |
55 | $(CC) -o $@ $^ -shared $(LDFLAGS) |
11913091 |
56 | |
57 | clean: |
7fd42181 |
58 | $(RM) $(TARGET_S) $(TARGET_D) $(OBJ_S) $(OBJ_D) |
59 | |
60 | # basic deps |
61 | dl.o patches.o: override.c |
62 | *.o: header.h |
63 | |