| 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 | TAG = _pnd |
| 28 | endif |
| 29 | ifdef WIZ |
| 30 | CFLAGS += -DWIZ |
| 31 | OBJ += wiz_video_arm.o |
| 32 | TAG = _wiz |
| 33 | endif |
| 34 | |
| 35 | vpath %.c = ../common/ |
| 36 | vpath %.s = ../common/ |
| 37 | |
| 38 | TARGET_S = ginge_sloader$(TAG) |
| 39 | TARGET_D = ginge_dyn$(TAG) |
| 40 | |
| 41 | OBJ += emu.o host.o host_fb.o cmn.o |
| 42 | OBJ_S += $(OBJ) loader.o loader_$(ARCH).o patches.o |
| 43 | OBJ_D += $(OBJ) dl.o |
| 44 | |
| 45 | all: $(TARGET_S) $(TARGET_D) |
| 46 | |
| 47 | $(TARGET_S): LDFLAGS += -Wl,-T script_$(ARCH).lds |
| 48 | $(TARGET_D): LDFLAGS += -ldl -Wl,--version-script=ginge_dyn.symver |
| 49 | |
| 50 | $(TARGET_S): $(OBJ_S) |
| 51 | $(CC) -o $@ $^ -static $(LDFLAGS) |
| 52 | |
| 53 | $(TARGET_D): $(OBJ_D) |
| 54 | $(CC) -o $@ $^ -shared $(LDFLAGS) |
| 55 | |
| 56 | clean: |
| 57 | $(RM) $(TARGET_S) $(TARGET_D) $(OBJ_S) $(OBJ_D) |
| 58 | |
| 59 | # basic deps |
| 60 | dl.o patches.o: override.c |
| 61 | *.o: header.h |
| 62 | host_fb.o: libpicofe/linux/fbdev.c |