tag all pnd/wiz binaries
[ginge.git] / loader / Makefile
index 49cf11f..e42d2b2 100644 (file)
@@ -2,12 +2,15 @@ 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
 
 ifeq "$(ARCH)" "ia32"
 ARCH = ia32
@@ -17,17 +20,44 @@ 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
+TAG = _pnd
+endif
+ifdef WIZ
+CFLAGS += -DWIZ
+OBJ += host_wiz.o wiz_video_arm.o
+TAG = _wiz
 endif
 
 vpath %.c = ../common/
+vpath %.s = ../common/
+
+TARGET_S = ginge_sloader$(TAG)
+TARGET_D = ginge_dyn$(TAG)
 
-OBJ += loader.o loader_$(ARCH).o patches.o emu.o host_fb.o host_pnd.o
+OBJ += emu.o host_fb.o cmn.o
+OBJ_S += $(OBJ) loader.o loader_$(ARCH).o patches.o
+OBJ_D += $(OBJ) dl.o
 
-ginge_sloader: LDFLAGS += -Wl,-T script_$(ARCH).lds
+all: $(TARGET_S) $(TARGET_D)
 
-ginge_sloader: $(OBJ)
-       $(CC) -o $@ $^ $(LDFLAGS)
+$(TARGET_S): LDFLAGS += -Wl,-T script_$(ARCH).lds
+$(TARGET_D): LDFLAGS += -ldl -Wl,--version-script=ginge_dyn.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
+