sync with latest warm
[ginge.git] / loader / Makefile
1 ARCH ?= arm
2 CROSS_COMPILE ?= arm-linux-
3 CC = $(CROSS_COMPILE)gcc
4 AS = $(CROSS_COMPILE)as
5 CFLAGS += -Wall -ggdb -DLOADER
6 LDFLAGS += -ggdb -lpthread -lrt
7 ifndef DEBUG
8 CFLAGS += -O2 -fno-strict-aliasing
9 LDFLAGS += -s -O2
10 endif
11 ifdef DBG
12 CFLAGS += -DDBG=$(DBG)
13 endif
14
15 ifeq "$(ARCH)" "ia32"
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 emu_arm.o
24 endif
25 ifdef PND
26 CFLAGS += -DPND
27 OBJ += host_pnd.o
28 endif
29 ifdef WIZ
30 CFLAGS += -DWIZ
31 OBJ += host_wiz.o
32 endif
33
34 vpath %.c = ../common/
35
36 TARGET_S = ginge_sloader
37 TARGET_D = ginge_dyn
38
39 OBJ += emu.o host_fb.o cmn.o
40 OBJ_S += $(OBJ) loader.o loader_$(ARCH).o patches.o
41 OBJ_D += $(OBJ) dl.o
42
43 all: $(TARGET_S) $(TARGET_D)
44
45 $(TARGET_S): LDFLAGS += -Wl,-T script_$(ARCH).lds
46 $(TARGET_D): LDFLAGS += -ldl -Wl,--version-script=$(TARGET_D).symver
47
48 $(TARGET_S): $(OBJ_S)
49         $(CC) -o $@ $^ -static $(LDFLAGS)
50
51 $(TARGET_D): $(OBJ_D)
52         $(CC) -o $@ $^ -shared $(LDFLAGS)
53
54 clean:
55         $(RM) $(TARGET_S) $(TARGET_D) $(OBJ_S) $(OBJ_D)
56
57 # basic deps
58 dl.o patches.o: override.c
59 *.o: header.h
60