support ancient toolchains
[ginge.git] / loader / Makefile
index b11da94..e76d5df 100644 (file)
@@ -3,10 +3,11 @@ CROSS_COMPILE ?= arm-linux-
 CC = $(CROSS_COMPILE)gcc
 AS = $(CROSS_COMPILE)as
 CFLAGS += -Wall -ggdb -DLOADER
-LDFLAGS += -ggdb -lpthread -lrt
+LDFLAGS += -ggdb
+#LDFLAGS += -nodefaultlibs # NYET
 ifndef DEBUG
 CFLAGS += -O2 -fno-strict-aliasing
-LDFLAGS += -s -O2
+LDFLAGS += -O2
 endif
 ifdef DBG
 CFLAGS += -DDBG=$(DBG)
@@ -16,11 +17,9 @@ ifeq "$(ARCH)" "ia32"
 ARCH = ia32
 CFLAGS += -m32
 LDFLAGS += -m32
-ASFLAGS += --32
 endif
 ifeq "$(ARCH)" "arm"
-ASFLAGS += -mfloat-abi=soft
-OBJ += sys_cacheflush.o emu_arm.o
+OBJ += syscalls.o emu_arm.o
 endif
 ifdef PND
 CFLAGS += -DPND
@@ -38,10 +37,7 @@ vpath %.s = ../common/
 TARGET_S = ginge_sloader$(TAG)
 TARGET_D = ginge_dyn$(TAG)
 
-OBJ += emu.o host.o host_fb.o cmn.o
-OBJ += ../common/libpicofe/input.o
-OBJ += ../common/libpicofe/linux/plat.o
-OBJ += ../common/libpicofe/linux/in_evdev.o
+OBJ += emu.o host.o host_fb.o cmn.o llibc.o
 OBJ_S += $(OBJ) loader.o loader_$(ARCH).o patches.o
 OBJ_D += $(OBJ) dl.o
 
@@ -49,6 +45,7 @@ all: $(TARGET_S) $(TARGET_D)
 
 $(TARGET_S): LDFLAGS += -Wl,-T script_$(ARCH).lds
 $(TARGET_D): LDFLAGS += -ldl -Wl,--version-script=ginge_dyn.symver
+$(TARGET_D): LDFLAGS += -Wl,--no-undefined
 
 $(TARGET_S): $(OBJ_S)
        $(CC) -o $@ $^ -static $(LDFLAGS)
@@ -56,6 +53,10 @@ $(TARGET_S): $(OBJ_S)
 $(TARGET_D): $(OBJ_D)
        $(CC) -o $@ $^ -shared $(LDFLAGS)
 
+# easier to support old toolchains with this
+%.o: %.s
+       $(CC) -o $@ -c $< $(CFLAGS)
+
 clean:
        $(RM) $(TARGET_S) $(TARGET_D) $(OBJ_S) $(OBJ_D)