Fix console handling with recent libsysbase
[libgxflux.git] / common.mk
blob4c04ddecedbd5beca2a8a40575d123af531cb90d
1 PREFIX ?= $(DEVKITPPC)/bin/powerpc-eabi-
3 AR = $(PREFIX)ar
4 AS = $(PREFIX)as
5 CC = $(PREFIX)gcc
6 CXX = $(PREFIX)g++
7 OBJCOPY = $(PREFIX)objcopy
8 RANLIB = $(PREFIX)ranlib
9 STRIP = $(PREFIX)strip
11 MACHDEP += -g -DGEKKO -mcpu=750 -meabi -mhard-float
12 CFLAGS += $(MACHDEP) -O2 -Wall -Wextra -pipe -I$(DEVKITPRO)/libogc/include
13 LDFLAGS += $(MACHDEP)
14 ASFLAGS += -D_LANGUAGE_ASSEMBLY -I$(DEVKITPRO)/libogc/include
16 ifeq ($(GAMECUBE),1)
17 MACHDEP += -mogc
18 CFLAGS += -DHW_DOL
19 LDFLAGS += -L$(DEVKITPRO)/libogc/lib/cube
20 ASFLAGS += -DHW_DOL
21 else
22 MACHDEP += -mrvl
23 CFLAGS += -DHW_RVL
24 LDFLAGS += -L$(DEVKITPRO)/libogc/lib/wii
25 ASFLAGS += -DHW_RVL
26 endif
28 ifneq ($(LDSCRIPT),)
29 LDFLAGS += -Wl,-T$(LDSCRIPT)
30 endif
32 DEPDIR = .deps
34 all: $(TARGET)
36 ifeq ($(LIBRARY),1)
38 $(TARGET): $(OBJS)
39 @rm -f $@
40 @echo " AR $@"
41 @$(AR) cru $@ $+
42 @echo " RANLIB $@"
43 @$(RANLIB) $@
45 else
47 TARGET_STRIPPED = $(TARGET:.elf=_stripped.elf)
49 strip: $(TARGET_STRIPPED)
51 ifneq ($(LDSCRIPT),)
52 $(TARGET): $(LDSCRIPT)
53 endif
55 $(TARGET): $(OBJS)
56 @echo " LINK $@"
57 @$(CC) $(LDFLAGS) $+ $(LIBS) -o $@
59 $(TARGET_STRIPPED): $(TARGET)
60 @echo " STRIP $@"
61 @$(STRIP) $< -o $@
63 wiiload: $(TARGET_STRIPPED)
64 @echo " WIILOAD $<"
65 @$(DEVKITPPC)/bin/wiiload $<
67 geckoload: $(TARGET_STRIPPED)
68 @echo " WIILOAD $<"
69 @WIILOAD=$(USBGECKODEVICE) $(DEVKITPPC)/bin/wiiload $<
71 upload: geckoload
72 endif
74 %.o: %.c
75 @echo " COMPILE $@"
76 @mkdir -p $(DEPDIR)
77 @$(CC) $(CFLAGS) $(DEFINES) -Wp,-MMD,$(DEPDIR)/$(*F).d,-MQ,"$@",-MP -c $< -o $@
79 %.o: %.s
80 @echo " ASSEMBLE $@"
81 @$(CC) $(CFLAGS) $(DEFINES) $(ASFLAGS) -c $< -o $@
83 %.o: %.S
84 @echo " ASSEMBLE $@"
85 @$(CC) $(CFLAGS) $(DEFINES) $(ASFLAGS) -c $< -o $@
87 clean:
88 @rm -rf $(DEPDIR)
89 @rm -f $(TARGET) $(TARGET_STRIPPED) $(TARGET).map $(OBJS)
91 -include $(DEPDIR)/*
93 .PHONY: clean