core: Fix libdwarf and Qt build failure
[clinton/Virtual-Jaguar-Rx.git] / Makefile
... / ...
CommitLineData
1# Makefile for Virtual Jaguar\r
2#\r
3# by James Hammons\r
4# (C) 2011 Underground Software\r
5#\r
6# Note that we control the version information here--uncomment only one set of\r
7# echo's from the "prepare" recipe. :-)\r
8#\r
9\r
10FIND = find\r
11\r
12ifeq ("$(V)","1")\r
13Q :=\r
14else\r
15Q := @\r
16endif\r
17\r
18# Gah\r
19OSTYPE := $(shell uname -a)\r
20\r
21# Should catch both 'darwin' and 'darwin7.0'\r
22ifeq "$(findstring Darwin,$(OSTYPE))" "Darwin"\r
23QMAKE_EXTRA := -spec macx-g++\r
24endif\r
25\r
26# Set basic flags, these can be overridden from the environment\r
27CFLAGS = -O2\r
28CXXFLAGS = -O2\r
29\r
30# Add CPPFLAGS\r
31CFLAGS += $(CPPFLAGS)\r
32CXXFLAGS += $(CPPFLAGS)\r
33\r
34# Without these flags, Virtual Jaguar will run very slow.\r
35CFLAGS += -ffast-math -fomit-frame-pointer\r
36CXXFLAGS += -ffast-math -fomit-frame-pointer\r
37\r
38ifeq "$(findstring Linux,$(OSTYPE))" "Linux"\r
39CFLAGS += -I/usr/include/libdwarf\r
40CXXFLAGS += -I/usr/include/libdwarf\r
41endif\r
42\r
43# Flags to pass on to qmake...\r
44QMAKE_EXTRA += "QMAKE_CFLAGS_RELEASE=$(CFLAGS)"\r
45QMAKE_EXTRA += "QMAKE_CXXFLAGS_RELEASE=$(CXXFLAGS)"\r
46QMAKE_EXTRA += "QMAKE_LFLAGS_RELEASE=$(LDFLAGS)"\r
47\r
48QMAKE_EXTRA += "QMAKE_CFLAGS_DEBUG=$(CFLAGS)"\r
49QMAKE_EXTRA += "QMAKE_CXXFLAGS_DEBUG=$(CXXFLAGS)"\r
50QMAKE_EXTRA += "QMAKE_LFLAGS_DEBUG=$(LDFLAGS)"\r
51\r
52# Add Qt flags on GNU/Linux since core code uses Qt Widgets now\r
53ifeq "$(findstring Linux,$(OSTYPE))" "Linux"\r
54CFLAGS += $(shell pkg-config --cflags Qt5Widgets)\r
55CXXFLAGS += $(shell pkg-config --cflags Qt5Widgets)\r
56LDFLAGS += $(shell pkg-config --libs Qt5Widgets)\r
57endif\r
58\r
59all: prepare virtualjaguar\r
60 @echo -e "\033[01;33m***\033[00;32m Success!\033[00m"\r
61\r
62obj:\r
63 @mkdir obj\r
64\r
65prepare: obj\r
66 @echo -e "\033[01;33m***\033[00;32m Preparing to compile Virtual Jaguar...\033[00m"\r
67 @echo "#define VJ_RELEASE_VERSION \"v2.1.3\"" > src/version.h\r
68 @echo "#define VJ_RELEASE_SUBVERSION \"Final\"" >> src/version.h\r
69 @echo "#define VJ_REMOVE_DEV_CODE" >> src/version.h\r
70# @echo "#define VJ_RELEASE_VERSION \"GIT `git log -1 --pretty=format:%ci | cut -d ' ' -f 1 | tr -d -`\"" > src/version.h\r
71# @echo "#define VJ_RELEASE_SUBVERSION \"2.1.4 Prerelease\"" >> src/version.h\r
72\r
73virtualjaguar: sources libs makefile-qt\r
74 @echo -e "\033[01;33m***\033[00;32m Making Virtual Jaguar GUI...\033[00m"\r
75 $(Q)$(MAKE) -f makefile-qt CROSS=$(CROSS) V="$(V)"\r
76\r
77makefile-qt: virtualjaguar.pro\r
78 @echo -e "\033[01;33m***\033[00;32m Creating Qt makefile...\033[00m"\r
79 $(Q)$(CROSS)qmake $(QMAKE_EXTRA) virtualjaguar.pro -o makefile-qt\r
80\r
81libs: obj/libm68k.a obj/libjaguarcore.a\r
82 @echo -e "\033[01;33m***\033[00;32m Libraries successfully made.\033[00m"\r
83\r
84obj/libm68k.a: src/m68000/Makefile sources\r
85 @echo -e "\033[01;33m***\033[00;32m Making Customized UAE 68K Core...\033[00m"\r
86 $(Q)$(MAKE) -C src/m68000 CROSS=$(CROSS) CFLAGS="$(CFLAGS)" V="$(V)"\r
87 $(Q)cp src/m68000/obj/libm68k.a obj/\r
88\r
89obj/libjaguarcore.a: jaguarcore.mak sources\r
90 @echo -e "\033[01;33m***\033[00;32m Making Virtual Jaguar core...\033[00m"\r
91 $(Q)$(MAKE) -f jaguarcore.mak CROSS=$(CROSS) CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" V="$(V)"\r
92\r
93sources: src/*.h src/*.cpp src/m68000/*.c src/m68000/*.h\r
94\r
95clean:\r
96 @echo -ne "\033[01;33m***\033[00;32m Cleaning out the garbage...\033[00m"\r
97 @-rm -rf ./obj\r
98 @-rm -rf ./src/m68000/obj\r
99 @-rm -rf makefile-qt\r
100 @-rm -rf virtualjaguar\r
101 @-$(FIND) . -name "*~" -exec rm -f {} \;\r
102 @echo "done!"\r
103\r
104statistics:\r
105 @echo -n "Lines in source files: "\r
106 @-$(FIND) ./src -name "*.cpp" | xargs cat | wc -l\r
107 @echo -n "Lines in header files: "\r
108 @-$(FIND) ./src -name "*.h" | xargs cat | wc -l\r
109\r
110dist: clean\r