File: Makefile.configuration

package info (click to toggle)
normaliz 3.9.4%2Bds-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 27,624 kB
  • sloc: cpp: 39,173; makefile: 2,008; python: 715; sh: 6
file content (120 lines) | stat: -rw-r--r-- 2,851 bytes parent folder | download
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
##
## Makefile configuration for normaliz
## (for the classic build system)
##
CXX = g++
#CXX = clang++-13
CXXFLAGS += -std=c++14 -Wall -pedantic -Wno-sign-compare -Wno-deprecated  -funroll-loops -fPIC -g
#CXXFLAGS += -pg      ## profiling
#CXXFLAGS += -DNDEBUG ## disables asserts

GMPFLAGS = -lgmpxx -lgmp
INSTALLDIR = $(PWD)/../local
OPT_LIB_ROOT=$(INSTALLDIR)

CXXFLAGS += -I .. -I . -I $(OPT_LIB_ROOT)/include
CXXFLAGS += -DNMZ_MAKEFILE_CLASSIC ## this avoids reading nmz_config.h
LINKFLAGS = -L $(PWD)/libnormaliz -L $(OPT_LIB_ROOT)/lib

# settings for default Linux static
LIBLINK = libnormaliz/libnormaliz.a
LIBNAME = libnormaliz.a
EXENAME = libnormaliz

MPFRLIB = -lmpfr
FLINTLIB = -lflint

# development?
ifeq ($(NMZ_DEBUG),yes)
	CXXFLAGS += -g3 -DNMZ_DEBUG
else
  CXXFLAGS += -O3
endif

ifeq ($(NMZ_EXTENDED_TESTS),yes)
  CXXFLAGS += -DNMZ_EXTENDED_TESTS
endif

# MinGW is for production
ifeq ($(MSYSTEM),MINGW64)
  $(info MSYS detected, only static build possible)
  NMZ_DEVELOP=no
  CXXFLAGS += -static # only static possible
  CXXFLAGS += -mnop-fun-dllimport
  EXENAME = normaliz.exe
  # MPFRLIB = -lmpfr.dll # if used will link against true dll
  # FLINTLIB = -lflint.dll # ditto
endif

# development?
ifeq ($(NMZ_DEVELOP),no)
  STRIP_FLAGS = -Wl,-s
else
  CXXFLAGS += -DNMZ_DEVELOP # avoids reading version.h
endif

## use OpenMP?
ifeq ($(OPENMP),no)
  CXXFLAGS += -Wno-unknown-pragmas
else
  CXXFLAGS += -fopenmp ## g++
  ##CXXFLAGS += -fopenmp=libgomp ## clang++
endif

ifeq ($(GPERFTOOLS),yes)
  CXXFLAGS += -DNMZ_GPERF
  PERFFLAGS = -lprofiler
endif

#gperftools or NMZ_SHARED?
# for MSYS fixed to static above
ifneq ($(MSYSTEM),MINGW64)
	ifeq ($(NMZ_SHARED),yes)
		 LINKFLAGS += -Wl,-rpath=$(INSTALLDIR)/lib -Wl,-rpath=$(PWD)/libnormaliz
		 # CXXFLAGS += -shared
		 LIBLINK = libnormaliz/libnormaliz.so
		 LIBNAME = libnormaliz.so
	else
		CXXFLAGS += -static
	endif
endif

ifeq ($(NAKED),yes) ## switches off all optional libraries
else
  # skip nauty?
  ifeq ($(NAUTY),no)
  else
    CXXFLAGS += -DNMZ_NAUTY -DNMZ_NAUTYNAUTY -DNMZ_NAUTY_TLS
    NAUTYFLAGS = -lnauty
  endif

  # skip hash-library?
  ifeq ($(HASHLIBRARY),no)
  else
    CXXFLAGS += -DNMZ_HASHLIBRARY
    HASHLIBRARYFLAGS = -lsha256
  endif

  ##use COCOA?
  ifneq ($(COCOA),no)
    CXXFLAGS += -DNMZ_COCOA #  -DCoCoA_THREADSAFE_HACK
    COCOAFLAGS = -lcocoa
  endif

  ##use EANTIC?
  ifeq ($(EANTIC),no)
    ##use FLINT?
    ifneq ($(FLINT),no)
      CXXFLAGS += -DNMZ_FLINT
      FLINTFLAGS = $(FLINTLIB) $(MPFRLIB)
    endif
  else
    CXXFLAGS += -DENFNORMALIZ -DNMZ_FLINT
    EANTICFLAGS = -leanticxx -leantic -larb -lantic $(FLINTLIB) $(MPFRLIB)
  endif ## EANTIC
endif ## NAKED

LINKFLAGS +=  $(COCOAFLAGS) $(EANTICFLAGS) $(FLINTFLAGS) $(NAUTYFLAGS) $(HASHLIBRARYFLAGS)  $(GMPFLAGS) $(PERFFLAGS) $(STRIP_FLAGS)

#$(PERFFLAGS)
## -lprofiler -lunwind -llzma