wiz blitters, fb restore, tweaks
[ginge.git] / loader / Makefile
index 5055ac7..b546c7c 100644 (file)
@@ -1,9 +1,18 @@
+ARCH ?= arm
+CROSS_COMPILE ?= arm-linux-
 CC = $(CROSS_COMPILE)gcc
 AS = $(CROSS_COMPILE)as
-CFLAGS += -Wall -ggdb
-LDFLAGS += -static -ggdb
+CFLAGS += -Wall -ggdb -DLOADER
+LDFLAGS += -ggdb -lpthread -lrt
+ifndef DEBUG
+CFLAGS += -O2 -fno-strict-aliasing
+LDFLAGS += -s -O2
+endif
+ifdef DBG
+CFLAGS += -DDBG=$(DBG)
+endif
 
-ifndef ARCH
+ifeq "$(ARCH)" "ia32"
 ARCH = ia32
 CFLAGS += -m32
 LDFLAGS += -m32
@@ -11,14 +20,42 @@ ASFLAGS += --32
 endif
 ifeq "$(ARCH)" "arm"
 ASFLAGS += -mfloat-abi=soft
-OBJ += sys_cacheflush.o
+OBJ += sys_cacheflush.o emu_arm.o
+endif
+ifdef PND
+CFLAGS += -DPND
+OBJ += host_pnd.o
 endif
+ifdef WIZ
+CFLAGS += -DWIZ
+OBJ += host_wiz.o wiz_video_arm.o
+endif
+
+vpath %.c = ../common/
+vpath %.s = ../common/
 
-OBJ += loader.o loader_$(ARCH).o patches.o emu.o host_fb.o host_pnd.o
+TARGET_S = ginge_sloader
+TARGET_D = ginge_dyn
 
-loader: $(OBJ)
+OBJ += emu.o host_fb.o cmn.o
+OBJ_S += $(OBJ) loader.o loader_$(ARCH).o patches.o
+OBJ_D += $(OBJ) dl.o
 
-loader: LDFLAGS += -Wl,-T script_$(ARCH).lds
+all: $(TARGET_S) $(TARGET_D)
+
+$(TARGET_S): LDFLAGS += -Wl,-T script_$(ARCH).lds
+$(TARGET_D): LDFLAGS += -ldl -Wl,--version-script=$(TARGET_D).symver
+
+$(TARGET_S): $(OBJ_S)
+       $(CC) -o $@ $^ -static $(LDFLAGS)
+
+$(TARGET_D): $(OBJ_D)
+       $(CC) -o $@ $^ -shared $(LDFLAGS)
 
 clean:
-       $(RM) loader $(OBJ)
+       $(RM) $(TARGET_S) $(TARGET_D) $(OBJ_S) $(OBJ_D)
+
+# basic deps
+dl.o patches.o: override.c
+*.o: header.h
+