unset ld env before running command
[ginge.git] / loader / Makefile
CommitLineData
0881206b 1ARCH ?= arm
2CROSS_COMPILE ?= arm-linux-
11913091 3CC = $(CROSS_COMPILE)gcc
4AS = $(CROSS_COMPILE)as
7fd42181 5CFLAGS += -Wall -ggdb -DLOADER
d0b9b0df 6LDFLAGS += -ggdb
b4f4cb40 7#LDFLAGS += -nodefaultlibs # NYET
0881206b 8ifndef DEBUG
9CFLAGS += -O2 -fno-strict-aliasing
ad37f577 10LDFLAGS += -O2
0881206b 11endif
7fd42181 12ifdef DBG
13CFLAGS += -DDBG=$(DBG)
14endif
11913091 15
0881206b 16ifeq "$(ARCH)" "ia32"
11913091 17ARCH = ia32
18CFLAGS += -m32
19LDFLAGS += -m32
11913091 20endif
21ifeq "$(ARCH)" "arm"
d0b9b0df 22OBJ += syscalls.o emu_arm.o
11913091 23endif
4d045184 24ifdef PND
25CFLAGS += -DPND
cf0a08ff 26TAG = _pnd
4d045184 27endif
28ifdef WIZ
29CFLAGS += -DWIZ
ad439e71 30OBJ += wiz_video_arm.o
cf0a08ff 31TAG = _wiz
4d045184 32endif
11913091 33
2ce69bdf 34vpath %.c = ../common/
6ca08393 35vpath %.s = ../common/
2ce69bdf 36
cf0a08ff 37TARGET_S = ginge_sloader$(TAG)
38TARGET_D = ginge_dyn$(TAG)
7fd42181 39
d0b9b0df 40OBJ += emu.o host.o host_fb.o cmn.o llibc.o
7fd42181 41OBJ_S += $(OBJ) loader.o loader_$(ARCH).o patches.o
42OBJ_D += $(OBJ) dl.o
43
44all: $(TARGET_S) $(TARGET_D)
11913091 45
7fd42181 46$(TARGET_S): LDFLAGS += -Wl,-T script_$(ARCH).lds
cf0a08ff 47$(TARGET_D): LDFLAGS += -ldl -Wl,--version-script=ginge_dyn.symver
d5a3e1bc 48$(TARGET_D): LDFLAGS += -Wl,--no-undefined
11913091 49
7fd42181 50$(TARGET_S): $(OBJ_S)
51 $(CC) -o $@ $^ -static $(LDFLAGS)
52
53$(TARGET_D): $(OBJ_D)
54 $(CC) -o $@ $^ -shared $(LDFLAGS)
11913091 55
f2a1fca9 56# easier to support old toolchains with this
57%.o: %.s
58 $(CC) -o $@ -c $< $(CFLAGS)
59
11913091 60clean:
7fd42181 61 $(RM) $(TARGET_S) $(TARGET_D) $(OBJ_S) $(OBJ_D)
62
63# basic deps
64dl.o patches.o: override.c
65*.o: header.h
8424752c 66host_fb.o: libpicofe/linux/fbdev.c