1 # Makefile for Virtual Jaguar
4 # (C) 2011 Underground Software
6 # Note that we control the version information here--uncomment only one set of
7 # echo's from the "prepare" recipe. :-)
19 OSTYPE
:= $(shell uname
-a
)
21 # Should catch both 'darwin' and 'darwin7.0'
22 ifeq "$(findstring Darwin,$(OSTYPE))" "Darwin"
23 QMAKE_EXTRA
:= -spec macx-g
++
26 # Set basic flags, these can be overridden from the environment
32 CXXFLAGS
+= $(CPPFLAGS
)
34 # Without these flags, Virtual Jaguar will run very slow.
35 CFLAGS
+= -ffast-math
-fomit-frame-pointer
36 CXXFLAGS
+= -ffast-math
-fomit-frame-pointer
38 ifeq "$(findstring Linux,$(OSTYPE))" "Linux"
39 CFLAGS
+= -I
/usr
/include/libdwarf
40 CXXFLAGS
+= -I
/usr
/include/libdwarf
43 # Flags to pass on to qmake...
44 QMAKE_EXTRA
+= "QMAKE_CFLAGS_RELEASE=$(CFLAGS)"
45 QMAKE_EXTRA
+= "QMAKE_CXXFLAGS_RELEASE=$(CXXFLAGS)"
46 QMAKE_EXTRA
+= "QMAKE_LFLAGS_RELEASE=$(LDFLAGS)"
48 QMAKE_EXTRA
+= "QMAKE_CFLAGS_DEBUG=$(CFLAGS)"
49 QMAKE_EXTRA
+= "QMAKE_CXXFLAGS_DEBUG=$(CXXFLAGS)"
50 QMAKE_EXTRA
+= "QMAKE_LFLAGS_DEBUG=$(LDFLAGS)"
52 # Add Qt flags on GNU/Linux since core code uses Qt Widgets now
53 ifeq "$(findstring Linux,$(OSTYPE))" "Linux"
54 CFLAGS
+= $(shell pkg-config
--cflags Qt5Widgets
)
55 CXXFLAGS
+= $(shell pkg-config
--cflags Qt5Widgets
)
56 LDFLAGS
+= $(shell pkg-config
--libs Qt5Widgets
)
59 all: prepare virtualjaguar
60 @echo
-e
"\033[01;33m***\033[00;32m Success!\033[00m"
66 @echo
-e
"\033[01;33m***\033[00;32m Preparing to compile Virtual Jaguar...\033[00m"
67 @echo
"#define VJ_RELEASE_VERSION \"v2.1.3\"" > src
/version.h
68 @echo
"#define VJ_RELEASE_SUBVERSION \"Final\"" >> src
/version.h
69 @echo
"#define VJ_REMOVE_DEV_CODE" >> src
/version.h
70 # @echo "#define VJ_RELEASE_VERSION \"GIT `git log -1 --pretty=format:%ci | cut -d ' ' -f 1 | tr -d -`\"" > src/version.h
71 # @echo "#define VJ_RELEASE_SUBVERSION \"2.1.4 Prerelease\"" >> src/version.h
73 virtualjaguar
: sources libs makefile-qt
74 @echo
-e
"\033[01;33m***\033[00;32m Making Virtual Jaguar GUI...\033[00m"
75 $(Q
)$(MAKE
) -f makefile-qt CROSS
=$(CROSS
) V
="$(V)"
77 makefile-qt
: virtualjaguar.pro
78 @echo
-e
"\033[01;33m***\033[00;32m Creating Qt makefile...\033[00m"
79 $(Q
)$(CROSS
)qmake
$(QMAKE_EXTRA
) virtualjaguar.pro
-o makefile-qt
81 libs
: obj
/libm68k.a obj
/libjaguarcore.a
82 @echo
-e
"\033[01;33m***\033[00;32m Libraries successfully made.\033[00m"
84 obj
/libm68k.a
: src
/m68000
/Makefile sources
85 @echo
-e
"\033[01;33m***\033[00;32m Making Customized UAE 68K Core...\033[00m"
86 $(Q
)$(MAKE
) -C src
/m68000 CROSS
=$(CROSS
) CFLAGS
="$(CFLAGS)" V
="$(V)"
87 $(Q
)cp src
/m68000
/obj
/libm68k.a obj
/
89 obj
/libjaguarcore.a
: jaguarcore.mak sources
90 @echo
-e
"\033[01;33m***\033[00;32m Making Virtual Jaguar core...\033[00m"
91 $(Q
)$(MAKE
) -f jaguarcore.mak CROSS
=$(CROSS
) CFLAGS
="$(CFLAGS)" CXXFLAGS
="$(CXXFLAGS)" V
="$(V)"
93 sources
: src
/*.h src
/*.
cpp src
/m68000
/*.c src
/m68000
/*.h
96 @echo
-ne
"\033[01;33m***\033[00;32m Cleaning out the garbage...\033[00m"
98 @
-rm -rf .
/src
/m68000
/obj
100 @
-rm -rf virtualjaguar
101 @
-$(FIND
) .
-name
"*~" -exec
rm -f
{} \
;
105 @echo
-n
"Lines in source files: "
106 @
-$(FIND
) .
/src
-name
"*.cpp" | xargs cat | wc
-l
107 @echo
-n
"Lines in header files: "
108 @
-$(FIND
) .
/src
-name
"*.h" | xargs cat | wc
-l