Rudimentary library unloading support
[lsnes.git] / Makefile
blob3a9684a0cbbdfca71513b3ccae6309afe5c8158b
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 #Flags.
14 HOSTCCFLAGS = -std=gnu++0x
15 CFLAGS += -std=gnu++0x -pthread $(USER_CFLAGS)
16 ifdef BOOST_NEEDS_MT
17 BOOST_LIB_POSTFIX=-mt
18 endif
19 ifdef HOST_BOOST_NEEDS_MT
20 HOST_BOOST_POSTFIX=-mt
21 endif
23 LDFLAGS = -pthread -lboost_iostreams$(BOOST_LIB_POSTFIX) -lboost_filesystem$(BOOST_LIB_POSTFIX) -lboost_system$(BOOST_LIB_POSTFIX) -lboost_regex$(BOOST_LIB_POSTFIX) -lz $(USER_LDFLAGS)
25 ifeq ($(THREADS), NATIVE)
26 CFLAGS += -DNATIVE_THREADS
27 else
28 ifeq ($(THREADS), BOOST)
29 CFLAGS += -DBOOST_THREADS
30 LDFLAGS += -lboost_thread$(BOOST_LIB_POSTFIX)
31 else
32 $(error "Bad value for THREADS (expected NATIVE or BOOST)")
33 endif
34 endif
36 ifdef NEED_LIBICONV
37 LDFLAGS += -liconv
38 endif
40 ifdef USE_LIBGCRYPT
41 CFLAGS += -DUSE_LIBGCRYPT_SHA256
42 LDFLAGS += -lgcrypt -lgpg-error
43 endif
45 ifdef USE_LIBLZMA
46 CFLAGS += -DLIBLZMA_AVAILABLE
47 LDFLAGS += -llzma
48 endif
50 ifeq ($(ARCHITECTURE), I386)
51 CFLAGS += -DARCH_IS_I386
52 else
53 endif
56 export
58 all: src/__all_files__
60 CFLAGS += $(shell $(CROSS_PREFIX)pkg-config $(LUA) --cflags)
61 LDFLAGS += $(shell $(CROSS_PREFIX)pkg-config $(LUA) --libs)
62 CFLAGS += $(shell $(CROSS_PREFIX)curl-config --cflags)
63 LDFLAGS += $(shell $(CROSS_PREFIX)curl-config --libs)
65 compiler=$(subst ++,cc,$(REALCC))
66 gambatte_compiler=$(REALCC)
68 bsnes/out/libsnes.$(ARCHIVE_SUFFIX): forcelook
69 $(MAKE) -C bsnes $(BSNES_PROFILE_STRING) $(BSNES_TARGET_STRING)
70 $(REALRANLIB) bsnes/out/libsnes.$(ARCHIVE_SUFFIX)
73 src/__all_files__: src/core/version.cpp buildaux/mkdeps.exe buildaux/txt2cstr.exe forcelook
74 $(MAKE) -C src precheck
75 $(MAKE) -C src
76 cp src/lsnes$(DOT_EXECUTABLE_SUFFIX) .
78 buildaux/txt2cstr.exe: buildaux/txt2cstr.cpp
79 $(HOSTCC) $(HOSTCCFLAGS) -o $@ $<
80 buildaux/version.exe: buildaux/version.cpp VERSION
81 $(HOSTCC) $(HOSTCCFLAGS) -o $@ $<
82 buildaux/mkdeps.exe: buildaux/mkdeps.cpp VERSION
83 $(HOSTCC) $(HOSTCCFLAGS) -o $@ $< -lboost_filesystem$(HOST_BOOST_POSTFIX) -lboost_system$(HOST_BOOST_POSTFIX)
84 src/core/version.cpp: buildaux/version.exe forcelook
85 buildaux/version.exe >$@
87 platclean:
88 $(MAKE) -C src platclean
90 clean:
91 $(MAKE) -C src clean
92 rm -f buildaux/version.exe
94 forcelook:
95 @true