- updated INSTALL w/ more info on building ser
[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 # -DPKG_MALLOC  
34 #               uses a faster malloc (exclusive w/ USE_SHM_MEM)
35 # -DUSE_SHM_MEM 
36 #               all pkg_malloc => shm_malloc (most mallocs use a common sh. 
37 #               mem. segment); don't define PKG_MALLOC if you want this!
38 # -DDBG_QM_MALLOC
39 #               qm_malloc debug code, will cause pkg_malloc and shm_malloc
40 #               to keep and display lot of debuging information: file name,
41 #               function, line number of malloc/free call for each block,
42 #               extra error checking (trying to free the same pointer
43 #               twice, trying to free a pointer alloc'ed with a different
44 #               malloc etc.)
45 DEFS= -DNAME='"$(NAME)"' -DVERSION='"$(RELEASE)"' -DARCH='"$(ARCH)"' \
46          -DDNS_IP_HACK  -DSHM_MEM \
47          -DPKG_MALLOC -DDBG_QM_MALLOC -DNODEBUG
48 #-DEXTRA_DEBUG
49 # -DUSE_SHM_MEM
50 #-DNO_DEBUG 
51 #-DPKG_MALLOC
52 #-DNO_DEBUG#-DSTATS -DNO_DEBUG 
53 #-DNO_LOG
54
55 PROFILE=  #-pg #set this if you want profiling
56 #mode = debug
57 mode = release
58
59 # platform dependent settings
60
61
62 #common
63 CC=gcc
64 LD=gcc
65 MKDEP=gcc -MM $(DEFS)
66 MKTAGS=ctags-exuberant -R .
67
68 ifeq ($(mode), release)
69         CFLAGS=-O2 -Wcast-align $(PROFILE) -Winline#-Wmissing-prototypes 
70         LDFLAGS=-Wl,-O2 -Wl,-E $(PROFILE)
71         # we need -fPIC -DPIC only for shared objects, we don't need them for
72         # the executable file, because it's always loaded at a fixed address
73         # -andrei
74 else
75         CFLAGS=-g -Wcast-align -Winline $(PROFILE)
76         LDFLAGS=-g -Wl,-E $(PROFILE)
77 endif
78
79 #*FLAGS used for compiling the modules
80 MOD_CFLAGS=-fPIC -DPIC $(CFLAGS)
81 MOD_LDFLAGS=-O2 -shared
82
83 LEX=flex
84 YACC=bison
85 YACC_FLAGS=-d -b cfg
86 # on linux and freebsd keep it empty (e.g. LIBS= )
87 # on solaris add -lxnet (e.g. LIBS= -lxnet)
88 LIBS=-lfl -ldl
89
90
91 #arch specific stuff
92 ifeq ($(ARCH), Linux)
93
94 endif
95 ifeq  ($(ARCH), SunOS)
96
97 YACC=yacc
98 LDFLAGS=-O2 $(PROFILE)
99 MOD_LDFLAGS=-O2 -G
100 LIBS+=-L/usr/local/lib -lxnet # or -lnsl -lsocket or -lglibc ?
101
102 endif
103 ifeq ($(ARCH), FreeBSD)
104
105 YACC=yacc
106 LIBS= -lfl  #dlopen is in libc
107
108 endif
109 ifneq (,$(findstring CYGWIN, $(ARCH)))
110
111 #cygwin is the same as common
112
113 endif
114