]> Shamusworld >> Repos - virtualjaguar/blob - jaguarcore.mak
Fixes for compilation against GCC 6.
[virtualjaguar] / jaguarcore.mak
1 #
2 # Makefile for Virtual Jaguar core library
3 #
4 # by James Hammons
5 #
6 # This software is licensed under the GPL v3 or any later version. See the
7 # file GPLv3 for details. ;-)
8 #
9
10 ifeq ("$(V)","1")
11 Q :=
12 else
13 Q := @
14 endif
15
16 # Cross compilation with MXE
17 #CROSS = i686-pc-mingw32-
18
19 SYSTYPE    := __GCCUNIX__
20
21 ifneq "$(CROSS)" ""
22 SYSTYPE    := __GCCWIN32__
23 else
24 OSTYPE := $(shell uname -o)
25 ifeq "$(OSTYPE)" "Msys"
26 SYSTYPE    := __GCCWIN32__
27 endif
28 endif
29
30 # Set vars for libcdio
31 ifneq "$(shell pkg-config --silence-errors --libs libcdio)" ""
32 HAVECDIO := -DHAVE_LIB_CDIO
33 CDIOLIB  := -lcdio
34 else
35 HAVECDIO :=
36 CDIOLIB  :=
37 endif
38
39 CC      := $(CROSS)gcc
40 LD      := $(CROSS)gcc
41 AR      := $(CROSS)ar
42 ARFLAGS := -rs
43
44 SDL_CFLAGS = `$(CROSS)sdl-config --cflags`
45 DEFINES = -D$(SYSTYPE)
46 GCC_DEPS = -MMD
47
48 INCS := -I./src
49
50 OBJS := \
51         obj/blitter.o      \
52         obj/cdintf.o       \
53         obj/cdrom.o        \
54         obj/crc32.o        \
55         obj/dac.o          \
56         obj/dsp.o          \
57         obj/eeprom.o       \
58         obj/event.o        \
59         obj/file.o         \
60         obj/filedb.o       \
61         obj/gpu.o          \
62         obj/jagbios.o      \
63         obj/jagbios2.o     \
64         obj/jagcdbios.o    \
65         obj/jagdevcdbios.o \
66         obj/jagstub1bios.o \
67         obj/jagstub2bios.o \
68         obj/jagdasm.o      \
69         obj/jaguar.o       \
70         obj/jerry.o        \
71         obj/joystick.o     \
72         obj/log.o          \
73         obj/memory.o       \
74         obj/mmu.o          \
75         obj/op.o           \
76         obj/settings.o     \
77         obj/state.o        \
78         obj/tom.o          \
79         obj/universalhdr.o \
80         obj/unzip.o        \
81         obj/wavetable.o
82
83 # Targets for convenience sake, not "real" targets
84 .PHONY: clean
85
86 all: obj obj/libjaguarcore.a
87         @echo "Done!"
88
89 obj:
90         @mkdir obj
91
92 # Library rules (might not be cross-platform compatible)
93 obj/libjaguarcore.a: $(OBJS) 
94         $(Q)$(AR) $(ARFLAGS) obj/libjaguarcore.a $(OBJS)
95
96 # Main source compilation (implicit rules)...
97
98 obj/%.o: src/%.cpp
99         @echo -e "\033[01;33m***\033[00;32m Compiling $<...\033[00m"
100         $(Q)$(CC) $(GCC_DEPS) $(CXXFLAGS) $(SDL_CFLAGS) $(DEFINES) $(INCS) -c $< -o $@
101
102 -include obj/*.d