lsnes rr1-Δ11ε1
[lsnes.git] / Makefile
blobc919584077844b773168050f46f81ecd1abe87ba
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 BSNES_PATH=$(shell pwd)/bsnes
12 #Flags.
13 HOSTCCFLAGS = -std=gnu++0x
14 CFLAGS = -I$(BSNES_PATH) -std=gnu++0x $(USER_CFLAGS)
15 ifdef BOOST_NEEDS_MT
16 BOOST_LIB_POSTFIX=-mt
17 else
18 BOOST_LIB_POSTFIX=
19 endif
21 LDFLAGS = -lboost_iostreams$(BOOST_LIB_POSTFIX) -lboost_filesystem$(BOOST_LIB_POSTFIX) -lboost_system$(BOOST_LIB_POSTFIX) -lboost_regex$(BOOST_LIB_POSTFIX) -lz $(USER_LDFLAGS)
23 ifeq ($(THREADS), NATIVE)
24 CFLAGS += -DNATIVE_THREADS
25 else
26 ifeq ($(THREADS), BOOST)
27 CFLAGS += -DBOOST_THREADS
28 LDFLAGS += -lboost_thread$(BOOST_LIB_POSTFIX)
29 else
30 $(error "Bad value for THREADS (expected NATIVE or BOOST)")
31 endif
32 endif
34 ifdef BSNES_IS_COMPAT
35 CFLAGS += -DBSNES_IS_COMPAT
36 endif
38 export
40 all: src/__all_files__
42 ifeq ($(BSNES_VERSION), 087)
43 BSNES_TARGET_STRING=target=libsnes
44 else
45 BSNES_TARGET_STRING=ui=ui-libsnes
46 endif
48 CFLAGS += -DBSNES_V${BSNES_VERSION}
50 ifdef BSNES_IS_COMPAT
51 BSNES_PROFILE_STRING=profile=compatibility
52 else
53 BSNES_PROFILE_STRING=profile=accuracy
54 endif
56 bsnes_compiler=$(subst ++,cc,$(REALCC))
58 bsnes/out/libsnes.$(ARCHIVE_SUFFIX): bsnes/snes/snes.hpp forcelook
59 $(MAKE) -C bsnes options=debugger $(BSNES_PROFILE_STRING) $(BSNES_TARGET_STRING) compiler=$(bsnes_compiler)
60 $(REALRANLIB) $@
62 src/__all_files__: src/core/version.cpp forcelook bsnes/out/libsnes.$(ARCHIVE_SUFFIX)
63 $(MAKE) -C src precheck
64 $(MAKE) -C src
65 cp src/lsnes$(DOT_EXECUTABLE_SUFFIX) .
67 buildaux/version.exe: buildaux/version.cpp VERSION
68 $(HOSTCC) $(HOSTCCFLAGS) -o $@ $<
69 src/core/version.cpp: buildaux/version.exe forcelook
70 buildaux/version.exe >$@
73 clean:
74 $(MAKE) -C bsnes clean
75 $(MAKE) -C src clean
77 forcelook:
78 @true