Merge pull request #29 from richard42/develop
[clinton/Virtual-Jaguar-Rx.git] / jaguarcore.mak
1 #
2 # Makefile for Virtual Jaguar core library
3 #
4 # by James Hammons
5 # Modified by Jean-Paul Mari
6 #
7 # This software is licensed under the GPL v3 or any later version. See the
8 # file LICENSE file for details. ;-)
9 #
10
11 ifeq ("$(V)","1")
12 Q :=
13 else
14 Q := @
15 endif
16
17 # Cross compilation with MXE
18 #CROSS = i686-pc-mingw32-
19
20 SYSTYPE := __GCCUNIX__
21
22 ifneq "$(CROSS)" ""
23 SYSTYPE := __GCCWIN32__
24 else
25 OSTYPE := $(shell uname -o)
26 ifeq "$(OSTYPE)" "Msys"
27 SYSTYPE := __GCCWIN32__
28 endif
29 endif
30
31 # Set vars for libcdio
32 ifneq "$(shell pkg-config --silence-errors --libs libcdio)" ""
33 HAVECDIO := -DHAVE_LIB_CDIO
34 CDIOLIB := -lcdio
35 else
36 HAVECDIO :=
37 CDIOLIB :=
38 endif
39
40 CC := $(CROSS)gcc
41 LD := $(CROSS)gcc
42 AR := $(CROSS)ar
43 ARFLAGS := -rs
44
45 SDL_CFLAGS = `$(CROSS)sdl-config --cflags`
46 QT_CFLAGS = -fPIC -I/usr/include/qt5 -I/usr/include/qt5/QtOpenGL -I/usr/include/qt5/QtWidgets -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtCore
47 DEFINES = -D$(SYSTYPE)
48 GCC_DEPS = -MMD
49
50 INCS := -I./src
51
52 OBJS := \
53 obj/blitter.o \
54 obj/cdintf.o \
55 obj/cdrom.o \
56 obj/dac.o \
57 obj/dsp.o \
58 obj/eeprom.o \
59 obj/event.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/memory.o \
73 obj/memtrack.o \
74 obj/mmu.o \
75 obj/modelsBIOS.o \
76 obj/op.o \
77 obj/state.o \
78 obj/tom.o \
79 obj/universalhdr.o \
80 obj/wavetable.o
81
82 # Targets for convenience sake, not "real" targets
83 .PHONY: clean
84
85 all: obj obj/libjaguarcore.a
86 @echo "Done!"
87
88 obj:
89 @mkdir obj
90
91 # Library rules (might not be cross-platform compatible)
92 obj/libjaguarcore.a: $(OBJS)
93 $(Q)$(AR) $(ARFLAGS) obj/libjaguarcore.a $(OBJS)
94
95 # Main source compilation (implicit rules)...
96
97 obj/%.o: src/%.cpp
98 @echo -e "\033[01;33m***\033[00;32m Compiling $<...\033[00m"
99 $(Q)$(CC) $(GCC_DEPS) $(CXXFLAGS) $(SDL_CFLAGS) $(QT_CFLAGS) $(DEFINES) $(INCS) -c $< -o $@
100
101 -include obj/*.d