399dd962d907bc66fd427577758227c1b8bfad62
[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 #
51
52 DEFS+= -DNAME='"$(NAME)"' -DVERSION='"$(RELEASE)"' -DARCH='"$(ARCH)"' \
53          -DDNS_IP_HACK  -DPKG_MALLOC -DSHM_MEM  -DSHM_MMAP \
54         -DEXTRA_DEBUG \
55         -DVQ_MALLOC 
56           #-DDBG_QM_MALLOC #-DVQ_MALLOC #-DNO_DEBUG
57           #-DNO_DEBUG #-DDBG_QM_MALLOC
58 #-DEXTRA_DEBUG
59 # -DUSE_SHM_MEM
60 #-DNO_DEBUG 
61 #-DPKG_MALLOC
62 #-DNO_DEBUG#-DSTATS -DNO_DEBUG 
63 #-DNO_LOG
64
65 PROFILE=  -pg #set this if you want profiling
66 mode = debug
67 #mode = release
68
69 # platform dependent settings
70
71
72 #common
73 CC=gcc
74 LD=gcc
75 MKDEP=gcc -MM $(DEFS)
76 MKTAGS=ctags-exuberant -R .
77
78 ifeq ($(mode), release)
79         CFLAGS=-O2 -Wcast-align $(PROFILE) -Winline#-Wmissing-prototypes 
80         LDFLAGS=-Wl,-O2 -Wl,-E $(PROFILE)
81         # we need -fPIC -DPIC only for shared objects, we don't need them for
82         # the executable file, because it's always loaded at a fixed address
83         # -andrei
84 else
85         CFLAGS=-g -Wcast-align -Winline $(PROFILE)
86         LDFLAGS=-g -Wl,-E $(PROFILE)
87 endif
88
89 #*FLAGS used for compiling the modules
90 MOD_CFLAGS=-fPIC -DPIC $(CFLAGS)
91 MOD_LDFLAGS=-O2 -shared
92
93 LEX=flex
94 YACC=bison
95 YACC_FLAGS=-d -b cfg
96 # on linux and freebsd keep it empty (e.g. LIBS= )
97 # on solaris add -lxnet (e.g. LIBS= -lxnet)
98 LIBS=-lfl -ldl
99
100
101 #arch specific stuff
102 ifeq ($(ARCH), Linux)
103
104 endif
105 ifeq  ($(ARCH), SunOS)
106
107 YACC=yacc
108 LDFLAGS=-O2 $(PROFILE)
109 MOD_LDFLAGS=-O2 -G
110 LIBS+=-L/usr/local/lib -lxnet # or -lnsl -lsocket or -lglibc ?
111
112 endif
113 ifeq ($(ARCH), FreeBSD)
114
115 YACC=yacc
116 LIBS= -lfl  #dlopen is in libc
117
118 endif
119 ifneq (,$(findstring CYGWIN, $(ARCH)))
120
121 #cygwin is the same as common
122
123 endif
124