Make SGB ROMs actually usable
[lsnes.git] / Makefile
blob9a873af73ad1aa9689e6e12947255f38366752e0
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), 087)
22 BSNES_TARGET_STRING=target=libsnes
23 else
24 BSNES_TARGET_STRING=ui=ui-libsnes
25 endif
26 CFLAGS += -DBSNES_V${BSNES_VERSION}
27 else
28 ifeq ($(CORE_TYPE), GAMBATTE)
29 CORE_PATH=$(shell pwd)/gambatte
30 CORE_SUBDIR=gambatte
31 CORE_OBJECT=gambatte/libgambatte/libgambatte.$(ARCHIVE_SUFFIX)
32 CORE_DEFINE=-DCORETYPE_GAMBATTE=1
33 BSNES_PROFILE_STRING=
34 BSNES_TARGET_STRING=
35 else
36 $(error "Bad value for CORETYPE (expected BSNES or GAMBATTE)")
37 endif
38 endif
40 #Flags.
41 HOSTCCFLAGS = -std=gnu++0x
42 CFLAGS += -I$(CORE_PATH) $(CORE_DEFINE) -std=gnu++0x $(USER_CFLAGS)
43 ifdef BOOST_NEEDS_MT
44 BOOST_LIB_POSTFIX=-mt
45 else
46 BOOST_LIB_POSTFIX=
47 endif
49 LDFLAGS = -lboost_iostreams$(BOOST_LIB_POSTFIX) -lboost_filesystem$(BOOST_LIB_POSTFIX) -lboost_system$(BOOST_LIB_POSTFIX) -lboost_regex$(BOOST_LIB_POSTFIX) -lz $(USER_LDFLAGS)
51 ifeq ($(THREADS), NATIVE)
52 CFLAGS += -DNATIVE_THREADS
53 else
54 ifeq ($(THREADS), BOOST)
55 CFLAGS += -DBOOST_THREADS
56 LDFLAGS += -lboost_thread$(BOOST_LIB_POSTFIX)
57 else
58 $(error "Bad value for THREADS (expected NATIVE or BOOST)")
59 endif
60 endif
63 export
65 all: src/__all_files__
69 compiler=$(subst ++,cc,$(REALCC))
70 gambatte_compiler=$(REALCC)
72 $(CORE_OBJECT): forcelook
73 $(MAKE) -C $(CORE_SUBDIR) $(BSNES_PROFILE_STRING) $(BSNES_TARGET_STRING)
74 $(REALRANLIB) $@
76 src/__all_files__: src/core/version.cpp forcelook $(CORE_OBJECT)
77 $(MAKE) -C src precheck
78 $(MAKE) -C src
79 cp src/lsnes$(DOT_EXECUTABLE_SUFFIX) .
81 buildaux/version.exe: buildaux/version.cpp VERSION
82 $(HOSTCC) $(HOSTCCFLAGS) -o $@ $<
83 src/core/version.cpp: buildaux/version.exe forcelook
84 buildaux/version.exe >$@
87 clean:
88 -$(MAKE) -C bsnes clean
89 -$(MAKE) -C gambatte clean
90 $(MAKE) -C src clean
92 forcelook:
93 @true