Handle buttons when dynamically loading cores
[lsnes.git] / Makefile
blob3abb8edb26b71eac0f16b1c692c898ca74beddc5
1 OPTIONS=options.build
2 include $(OPTIONS)
4 ifndef LUA
5 LUA=lua
6 endif
8 #Compilers.
9 REALCC = $(CROSS_PREFIX)$(CC)
10 REALLD = $(CROSS_PREFIX)$(LD)
11 REALRANLIB = $(CROSS_PREFIX)$(RANLIB)
13 CORE_DEFINE=
14 CORE_OBJECT=
15 CORE_OBJECTS=
16 CORE_PATH=
18 ifdef BSNES_VERSION
19 CORE_PATH+=-I$(shell pwd)/bsnes
20 CORE_OBJECT+=../bsnes/out/libsnes.$(ARCHIVE_SUFFIX)
21 CORE_OBJECTS+=bsnes/out/libsnes.$(ARCHIVE_SUFFIX)
22 CORE_DEFINE+=-DCORETYPE_BSNES=1
23 ifdef BSNES_IS_COMPAT
24 CFLAGS += -DBSNES_IS_COMPAT
25 BSNES_PROFILE_STRING=profile=compatibility
26 else
27 BSNES_PROFILE_STRING=profile=accuracy
28 endif
29 ifeq ($(BSNES_VERSION), 084)
30 BSNES_PROFILE_STRING+=options=debugger
31 CFLAGS += -DBSNES_HAS_DEBUGGER
32 else
33 ifeq ($(BSNES_VERSION), 085)
34 BSNES_PROFILE_STRING+=options=debugger
35 CFLAGS += -DBSNES_HAS_DEBUGGER
36 endif
37 endif
38 ifeq ($(BSNES_VERSION), 087)
39 BSNES_TARGET_STRING=target=libsnes
40 else
41 BSNES_TARGET_STRING=ui=ui-libsnes
42 endif
43 CFLAGS += -DBSNES_V${BSNES_VERSION}
44 BUILD_BSNES=1
45 endif
47 ifdef BUILD_GAMBATTE
48 CORE_PATH+=-I$(shell pwd)/gambatte
49 CORE_OBJECT+=../gambatte/libgambatte/libgambatte.$(ARCHIVE_SUFFIX)
50 CORE_OBJECTS+=gambatte/libgambatte/libgambatte.$(ARCHIVE_SUFFIX)
51 CORE_DEFINE+=-DCORETYPE_GAMBATTE=1
52 endif
54 #Flags.
55 HOSTCCFLAGS = -std=gnu++0x
56 CFLAGS += $(CORE_PATH) $(CORE_DEFINE) -std=gnu++0x $(USER_CFLAGS)
57 ifdef BOOST_NEEDS_MT
58 BOOST_LIB_POSTFIX=-mt
59 else
60 BOOST_LIB_POSTFIX=
61 endif
63 LDFLAGS = -lboost_iostreams$(BOOST_LIB_POSTFIX) -lboost_filesystem$(BOOST_LIB_POSTFIX) -lboost_system$(BOOST_LIB_POSTFIX) -lboost_regex$(BOOST_LIB_POSTFIX) -lz $(USER_LDFLAGS)
65 ifeq ($(THREADS), NATIVE)
66 CFLAGS += -DNATIVE_THREADS
67 else
68 ifeq ($(THREADS), BOOST)
69 CFLAGS += -DBOOST_THREADS
70 LDFLAGS += -lboost_thread$(BOOST_LIB_POSTFIX)
71 else
72 $(error "Bad value for THREADS (expected NATIVE or BOOST)")
73 endif
74 endif
77 export
79 all: src/__all_files__
81 CFLAGS += $(shell $(CROSS_PREFIX)pkg-config $(LUA) --cflags)
82 LDFLAGS += $(shell $(CROSS_PREFIX)pkg-config $(LUA) --libs)
84 compiler=$(subst ++,cc,$(REALCC))
85 gambatte_compiler=$(REALCC)
87 ifdef BUILD_BSNES
88 bsnes/out/libsnes.$(ARCHIVE_SUFFIX): forcelook
89 $(MAKE) -C bsnes $(BSNES_PROFILE_STRING) $(BSNES_TARGET_STRING)
90 $(REALRANLIB) bsnes/out/libsnes.$(ARCHIVE_SUFFIX)
91 endif
93 ifdef BUILD_GAMBATTE
94 gambatte/libgambatte/libgambatte.$(ARCHIVE_SUFFIX): forcelook
95 $(MAKE) -C gambatte
96 $(REALRANLIB) gambatte/libgambatte/libgambatte.$(ARCHIVE_SUFFIX)
97 endif
99 src/__all_files__: src/core/version.cpp forcelook $(CORE_OBJECTS)
100 $(MAKE) -C src precheck
101 $(MAKE) -C src
102 cp src/lsnes$(DOT_EXECUTABLE_SUFFIX) .
104 buildaux/version.exe: buildaux/version.cpp VERSION
105 $(HOSTCC) $(HOSTCCFLAGS) -o $@ $<
106 src/core/version.cpp: buildaux/version.exe forcelook
107 buildaux/version.exe >$@
110 clean:
111 -$(MAKE) -C bsnes clean
112 -$(MAKE) -C gambatte clean
113 $(MAKE) -C src clean
115 forcelook:
116 @true