more debugging features for ref_bitmapping
[sip-router] / Makefile.defs
1 #
2 # $Id$
3 #
4 # makefile defs (CC, LD,a.s.o)
5 #
6
7
8 #version number
9 VERSION = 0
10 PATCHLEVEL = 8
11 SUBLEVEL = 4
12 EXTRAVERSION =
13
14 RELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
15 ARCH = $(shell uname -s)
16
17 # compile-time options
18
19 # -DSTATS       
20 #               allows to print out number of packets processed on CTRL-C; 
21 #               implementation still nasty and reports per-process
22 # -DNO_DEBUG    
23 #               turns off some of the debug messages (DBG(...)).
24 # -DNO_LOG      
25 #               completely turns of all the logging (and DBG(...))
26 # -DEXTRA_DEBUG 
27 #               compiles in some extra debugging code
28 # -DDNS_IP_HACK 
29 #               faster ip address resolver for ip strings (e.g "127.0.0.1")
30 # -DSHM_MEM     
31 #               compiles in shared mem. support, needed by some modules and
32 #               by USE_SHM_MEM
33 # -DSHM_MMAP
34 #               use mmap instead of SYSV shared memory
35 # -DPKG_MALLOC  
36 #               uses a faster malloc (exclusive w/ USE_SHM_MEM)
37 # -DUSE_SHM_MEM 
38 #               all pkg_malloc => shm_malloc (most mallocs use a common sh. 
39 #               mem. segment); don't define PKG_MALLOC if you want this!
40 # -DDBG_QM_MALLOC
41 #               qm_malloc debug code, will cause pkg_malloc and shm_malloc
42 #               to keep and display lot of debuging information: file name,
43 #               function, line number of malloc/free call for each block,
44 #               extra error checking (trying to free the same pointer
45 #               twice, trying to free a pointer alloc'ed with a different
46 #               malloc etc.)
47 # -DVQ_MALLOC
48 #               additional option to PKG_MALLOC which utilizes a fater then
49 #               qm version
50 # -DDBG_MALLOC
51 #               issues additional debugging information if lock/unlock is called
52 #
53
54 DEFS+= -DNAME='"$(NAME)"' -DVERSION='"$(RELEASE)"' -DARCH='"$(ARCH)"' \
55          -DDNS_IP_HACK  -DPKG_MALLOC -DSHM_MEM  -DSHM_MMAP \
56         -DEXTRA_DEBUG \
57         -DVQ_MALLOC  -DDBG_LOCK  #-DSTATS
58           #-DDBG_QM_MALLOC #-DVQ_MALLOC #-DNO_DEBUG
59           #-DNO_DEBUG #-DDBG_QM_MALLOC
60 #-DEXTRA_DEBUG
61 # -DUSE_SHM_MEM
62 #-DNO_DEBUG 
63 #-DPKG_MALLOC
64 #-DNO_DEBUG#-DSTATS -DNO_DEBUG 
65 #-DNO_LOG
66
67 PROFILE=  -pg #set this if you want profiling
68 mode = debug
69 #mode = release
70
71 # platform dependent settings
72
73
74 #common
75 CC=gcc
76 LD=gcc
77 MKDEP=gcc -MM $(DEFS)
78 MKTAGS=ctags-exuberant -R .
79
80 ifeq ($(mode), release)
81         CFLAGS=-O2 -Wcast-align $(PROFILE) -Winline#-Wmissing-prototypes 
82         LDFLAGS=-Wl,-O2 -Wl,-E $(PROFILE)
83         # we need -fPIC -DPIC only for shared objects, we don't need them for
84         # the executable file, because it's always loaded at a fixed address
85         # -andrei
86 else
87         CFLAGS=-g -Wcast-align -Winline $(PROFILE)
88         LDFLAGS=-g -Wl,-E $(PROFILE)
89 endif
90
91 #*FLAGS used for compiling the modules
92 MOD_CFLAGS=-fPIC -DPIC $(CFLAGS)
93 MOD_LDFLAGS=-O2 -shared
94
95 LEX=flex
96 YACC=bison
97 YACC_FLAGS=-d -b cfg
98 # on linux and freebsd keep it empty (e.g. LIBS= )
99 # on solaris add -lxnet (e.g. LIBS= -lxnet)
100 LIBS=-lfl -ldl
101
102
103 #arch specific stuff
104 ifeq ($(ARCH), Linux)
105
106 endif
107 ifeq  ($(ARCH), SunOS)
108
109 YACC=yacc
110 LDFLAGS=-O2 $(PROFILE)
111 MOD_LDFLAGS=-O2 -G
112 LIBS+=-L/usr/local/lib -lxnet # or -lnsl -lsocket or -lglibc ?
113
114 endif
115 ifeq ($(ARCH), FreeBSD)
116
117 YACC=yacc
118 LIBS= -lfl  #dlopen is in libc
119
120 endif
121 ifneq (,$(findstring CYGWIN, $(ARCH)))
122
123 #cygwin is the same as common
124
125 endif
126