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