Fix features dependent on bsnes debugger
[lsnes.git] / Makefile
blob8be617c43b5e78493ca6dcfb5a3d47485e439c4d
1 OPTIONS=options.build
2 include $(OPTIONS)
5 #Compilers.
6 REALCC = $(CROSS_PREFIX)$(CC)
7 REALLD = $(CROSS_PREFIX)$(LD)
8 REALRANLIB = $(CROSS_PREFIX)$(RANLIB)
10 ifeq ($(CORE_TYPE), BSNES)
11 CORE_PATH=$(shell pwd)/bsnes
12 CORE_SUBDIR=bsnes
13 CORE_OBJECT=bsnes/out/libsnes.$(ARCHIVE_SUFFIX)
14 CORE_DEFINE=-DCORETYPE_BSNES=1
15 ifdef BSNES_IS_COMPAT
16 CFLAGS += -DBSNES_IS_COMPAT
17 BSNES_PROFILE_STRING=profile=compatibility
18 else
19 BSNES_PROFILE_STRING=profile=accuracy
20 endif
21 ifeq ($(BSNES_VERSION), 084)
22 BSNES_PROFILE_STRING+=options=debugger
23 else
24 ifeq ($(BSNES_VERSION), 085)
25 BSNES_PROFILE_STRING+=options=debugger
26 endif
27 endif
29 ifeq ($(BSNES_VERSION), 087)
30 BSNES_TARGET_STRING=target=libsnes
31 else
32 BSNES_TARGET_STRING=ui=ui-libsnes
33 endif
34 CFLAGS += -DBSNES_V${BSNES_VERSION}
35 else
36 ifeq ($(CORE_TYPE), GAMBATTE)
37 CORE_PATH=$(shell pwd)/gambatte
38 CORE_SUBDIR=gambatte
39 CORE_OBJECT=gambatte/libgambatte/libgambatte.$(ARCHIVE_SUFFIX)
40 CORE_DEFINE=-DCORETYPE_GAMBATTE=1
41 BSNES_PROFILE_STRING=
42 BSNES_TARGET_STRING=
43 else
44 $(error "Bad value for CORETYPE (expected BSNES or GAMBATTE)")
45 endif
46 endif
48 #Flags.
49 HOSTCCFLAGS = -std=gnu++0x
50 CFLAGS += -I$(CORE_PATH) $(CORE_DEFINE) -std=gnu++0x $(USER_CFLAGS)
51 ifdef BOOST_NEEDS_MT
52 BOOST_LIB_POSTFIX=-mt
53 else
54 BOOST_LIB_POSTFIX=
55 endif
57 LDFLAGS = -lboost_iostreams$(BOOST_LIB_POSTFIX) -lboost_filesystem$(BOOST_LIB_POSTFIX) -lboost_system$(BOOST_LIB_POSTFIX) -lboost_regex$(BOOST_LIB_POSTFIX) -lz $(USER_LDFLAGS)
59 ifeq ($(THREADS), NATIVE)
60 CFLAGS += -DNATIVE_THREADS
61 else
62 ifeq ($(THREADS), BOOST)
63 CFLAGS += -DBOOST_THREADS
64 LDFLAGS += -lboost_thread$(BOOST_LIB_POSTFIX)
65 else
66 $(error "Bad value for THREADS (expected NATIVE or BOOST)")
67 endif
68 endif
71 export
73 all: src/__all_files__
77 compiler=$(subst ++,cc,$(REALCC))
78 gambatte_compiler=$(REALCC)
80 $(CORE_OBJECT): forcelook
81 $(MAKE) -C $(CORE_SUBDIR) $(BSNES_PROFILE_STRING) $(BSNES_TARGET_STRING)
82 $(REALRANLIB) $@
84 src/__all_files__: src/core/version.cpp forcelook $(CORE_OBJECT)
85 $(MAKE) -C src precheck
86 $(MAKE) -C src
87 cp src/lsnes$(DOT_EXECUTABLE_SUFFIX) .
89 buildaux/version.exe: buildaux/version.cpp VERSION
90 $(HOSTCC) $(HOSTCCFLAGS) -o $@ $<
91 src/core/version.cpp: buildaux/version.exe forcelook
92 buildaux/version.exe >$@
95 clean:
96 -$(MAKE) -C bsnes clean
97 -$(MAKE) -C gambatte clean
98 $(MAKE) -C src clean
100 forcelook:
101 @true