summaryrefslogtreecommitdiff
path: root/common.mk
blob: e3e084bcda0d374a1c5b6ad7060dca6d10ed2dbf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
ifeq ($(SYSTEM),)
    SYSTEM := $(shell uname | cut -f 1 -d_)
endif

TRUESYSTEM := $(shell uname)
MACHINE := $(shell uname -m)
DISTRIB := $(shell cat /etc/issue | cut -f 1 -d\  | head -1)

CC = gcc
CXX = g++
LD = g++
AS = gcc -c
AR = ar rcs

BINEXT = bin

CPPFLAGS += -fno-strict-aliasing

ifeq ($(SYSTEM),Darwin)
    CC = clang
    CXX = clang++
    CPPFLAGS += -fPIC
    LDFLAGS += -fPIC
    ARCH_FLAGS =
    LD = clang++
    STRIP = strip -x
endif

ifeq ($(SYSTEM),Linux)
    CPPFLAGS += -fPIC
    LDFLAGS += -fPIC -rdynamic
    ARCH_FLAGS =
    ASFLAGS =
    STRIP = strip --strip-unneeded

    GCC_VERSION := $(shell g++ -dumpversion)
    GCC_VERSION_4 := $(shell expr `g++ -dumpversion | cut -f1 -d.` \>= 4)
    GCC_VERSION_x_8 := $(shell expr `g++ -dumpversion | cut -f2 -d.` \>= 8)

    ifneq ($(GCC_VERSION_4),1)
        USE_CLANG = true
    else
        ifneq ($(GCC_VERSION_x_8),1)
            USE_CLANG = true
        endif
    endif

    ifeq ($(USE_CLANG),true)
        CC = clang
        CXX = clang++
        LD = clang++
    endif
endif

CXXFLAGS += -Wno-deprecated -std=c++11