Commit | Line | Data |
---|---|---|
024bfc46 JPM |
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 | |
10 | FIND = find\r | |
11 | \r | |
12 | ifeq ("$(V)","1")\r | |
13 | Q :=\r | |
14 | else\r | |
15 | Q := @\r | |
16 | endif\r | |
17 | \r | |
18 | # Gah\r | |
19 | OSTYPE := $(shell uname -a)\r | |
20 | \r | |
21 | # Should catch both 'darwin' and 'darwin7.0'\r | |
22 | ifeq "$(findstring Darwin,$(OSTYPE))" "Darwin"\r | |
23 | QMAKE_EXTRA := -spec macx-g++\r | |
24 | endif\r | |
25 | \r | |
26 | # Set basic flags, these can be overridden from the environment\r | |
27 | CFLAGS = -O2\r | |
28 | CXXFLAGS = -O2\r | |
29 | \r | |
30 | # Add CPPFLAGS\r | |
31 | CFLAGS += $(CPPFLAGS)\r | |
32 | CXXFLAGS += $(CPPFLAGS)\r | |
33 | \r | |
34 | # Without these flags, Virtual Jaguar will run very slow.\r | |
35 | CFLAGS += -ffast-math -fomit-frame-pointer\r | |
36 | CXXFLAGS += -ffast-math -fomit-frame-pointer\r | |
37 | \r | |
38 | # Flags to pass on to qmake...\r | |
39 | QMAKE_EXTRA += "QMAKE_CFLAGS_RELEASE=$(CFLAGS)"\r | |
40 | QMAKE_EXTRA += "QMAKE_CXXFLAGS_RELEASE=$(CXXFLAGS)"\r | |
41 | QMAKE_EXTRA += "QMAKE_LFLAGS_RELEASE=$(LDFLAGS)"\r | |
42 | \r | |
43 | QMAKE_EXTRA += "QMAKE_CFLAGS_DEBUG=$(CFLAGS)"\r | |
44 | QMAKE_EXTRA += "QMAKE_CXXFLAGS_DEBUG=$(CXXFLAGS)"\r | |
45 | QMAKE_EXTRA += "QMAKE_LFLAGS_DEBUG=$(LDFLAGS)"\r | |
46 | \r | |
47 | \r | |
48 | all: prepare virtualjaguar\r | |
49 | @echo -e "\033[01;33m***\033[00;32m Success!\033[00m"\r | |
50 | \r | |
51 | obj:\r | |
52 | @mkdir obj\r | |
53 | \r | |
54 | prepare: obj\r | |
55 | @echo -e "\033[01;33m***\033[00;32m Preparing to compile Virtual Jaguar...\033[00m"\r | |
56 | @echo "#define VJ_RELEASE_VERSION \"v2.1.3\"" > src/version.h\r | |
57 | @echo "#define VJ_RELEASE_SUBVERSION \"Final\"" >> src/version.h\r | |
58 | @echo "#define VJ_REMOVE_DEV_CODE" >> src/version.h\r | |
59 | # @echo "#define VJ_RELEASE_VERSION \"GIT `git log -1 --pretty=format:%ci | cut -d ' ' -f 1 | tr -d -`\"" > src/version.h\r | |
60 | # @echo "#define VJ_RELEASE_SUBVERSION \"2.1.4 Prerelease\"" >> src/version.h\r | |
61 | \r | |
62 | virtualjaguar: sources libs makefile-qt\r | |
63 | @echo -e "\033[01;33m***\033[00;32m Making Virtual Jaguar GUI...\033[00m"\r | |
64 | $(Q)$(MAKE) -f makefile-qt CROSS=$(CROSS) V="$(V)"\r | |
65 | \r | |
66 | makefile-qt: virtualjaguar.pro\r | |
67 | @echo -e "\033[01;33m***\033[00;32m Creating Qt makefile...\033[00m"\r | |
68 | $(Q)$(CROSS)qmake $(QMAKE_EXTRA) virtualjaguar.pro -o makefile-qt\r | |
69 | \r | |
70 | libs: obj/libm68k.a obj/libjaguarcore.a\r | |
71 | @echo -e "\033[01;33m***\033[00;32m Libraries successfully made.\033[00m"\r | |
72 | \r | |
73 | obj/libm68k.a: src/m68000/Makefile sources\r | |
74 | @echo -e "\033[01;33m***\033[00;32m Making Customized UAE 68K Core...\033[00m"\r | |
75 | $(Q)$(MAKE) -C src/m68000 CROSS=$(CROSS) CFLAGS="$(CFLAGS)" V="$(V)"\r | |
76 | $(Q)cp src/m68000/obj/libm68k.a obj/\r | |
77 | \r | |
78 | obj/libjaguarcore.a: jaguarcore.mak sources\r | |
79 | @echo -e "\033[01;33m***\033[00;32m Making Virtual Jaguar core...\033[00m"\r | |
80 | $(Q)$(MAKE) -f jaguarcore.mak CROSS=$(CROSS) CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" V="$(V)"\r | |
81 | \r | |
82 | sources: src/*.h src/*.cpp src/m68000/*.c src/m68000/*.h\r | |
83 | \r | |
84 | clean:\r | |
85 | @echo -ne "\033[01;33m***\033[00;32m Cleaning out the garbage...\033[00m"\r | |
86 | @-rm -rf ./obj\r | |
87 | @-rm -rf ./src/m68000/obj\r | |
88 | @-rm -rf makefile-qt\r | |
89 | @-rm -rf virtualjaguar\r | |
90 | @-$(FIND) . -name "*~" -exec rm -f {} \;\r | |
91 | @echo "done!"\r | |
92 | \r | |
93 | statistics:\r | |
94 | @echo -n "Lines in source files: "\r | |
95 | @-$(FIND) ./src -name "*.cpp" | xargs cat | wc -l\r | |
96 | @echo -n "Lines in header files: "\r | |
97 | @-$(FIND) ./src -name "*.h" | xargs cat | wc -l\r | |
98 | \r | |
99 | dist: clean\r |