1 # This Makefile should work under Linux and Mingw32 (in Windows) (needs GNU ld ?)
3 # Requires C++11 and C99 (only variable length arrays)) compatible compiler
4 # (tested with gcc 4.7, clang 3.2)
6 # Archlinux note: following packages are compiled without static libs
7 # (use custom PKGBUILD): fltk, sqlite
9 #http://tehsausage.com/mingw-to-string
11 # CLANG 3.2 with -0x (x>0) has bug with -D_FORTIFY_SOURCE generates wrong code (slow fread in tinyxml)
12 # CLANG does not have -ggdb3
13 # http://llvm.org/bugs/show_bug.cgi?id=10276#c9
19 DEBUG
= -DDEBUG
-O0
-g
-ggdb3
20 WARNINGS
= -Wall
-Wno-vla
-pedantic
22 LIBS
= -L
/usr
/local
/lib
-L
/lib
24 CURL_CFLAGS
= $(shell curl-config
--cflags)
25 CURL_LIBS
= $(shell curl-config
--libs
)
26 CURL_STATICLIBS
= $(shell curl-config
--libs
)
27 FLTK_CXXFLAGS
= $(shell fltk-config
--cxxflags)
28 FLTK_LIBS
= $(shell fltk-config
--use-images
--ldflags --libs
)
29 FLTK_STATICLIBS
= $(shell fltk-config
--use-images
--ldstaticflags
--libs
)
32 CXXFLAGS
= ${CURL_CFLAGS} ${INCLUDE} -std
=c
++11 ${WARNINGS} ${FLTK_CXXFLAGS}
33 LDFLAGS
= ${LIBS} ${FLTK_LIBS} ${FLTK_LIBS} -lstdc
++ -lz
${CURL_LIBS}
34 LDSTATICFLAGS
= ${LIBS} ${FLTK_STATICLIBS} ${CURL_STATICLIBS} -static-libgcc
-static-libstdc
++
38 # OS specific settings
39 ifeq ($(shell uname
), Linux
)
44 # -mwindows: dont use console for stdout/stderr
46 LDFLAGS
=${LDSTATICFLAGS} -mconsole
51 src
/3rdparty
/sqlite3.o\
65 src
/3rdparty
/sqlite3.c\
79 src
/3rdparty
/sqlite3.h\
80 src
/3rdparty
/sqlite3ext.h\
81 src
/3rdparty
/rapidxml.hpp\
100 ${CC} ${CFLAGS} -c
$< -o
$@
103 ${CXX} ${CXXFLAGS} ${DEBUG} -c
$< -o
$@
106 ${CXX} ${CXXFLAGS} ${DEBUG} ${OBJ} -o
${NAME} ${LDFLAGS}
112 rm -f src
/*.o src
/3rdparty
/*.o src
/gui
/*.o
${NAME} 2>/dev
/null
116 distro
: clean ${NAME} strip