summaryrefslogtreecommitdiffstats
path: root/Makefile
blob: 37da0d4bcd36651ac2a3e94cbe3c2b0c54d5b09a (plain)
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
.EXPORT_ALL_VARIABLES:

OSARCH=$(shell uname -s)
OSREV=$(shell uname -r)

VERSION := 1.20pre
DESTDIR ?=
CONFDIR:=/etc/asterisk
CONFDIR_REAL := $(DESTDIR)/etc/asterisk
PERMDIR:=/etc/asterisk
PERMDIR_REAL := $(DESTDIR)/etc/asterisk

LIBDIR := $(DESTDIR)/usr/lib/astmanproxy
CONFFILE := astmanproxy.conf
PERMFILE := astmanproxy.users
DISTDIR := /var/www/html/astmanproxy


CC := gcc
#LIBS := -lpthread
INCLUDES :=
PREFIX:= /usr/local
BINDIR := $(DESTDIR)$(PREFIX)/sbin

# For compilation dependencies
MODS := astmanproxy config config_perms common proxyfunc log ssl md5
HANDLERS := xml standard csv http
SOBJS := $(HANDLERS:%=%.so)
LIBS := -lssl

ifeq (${OSARCH},Darwin)  
  LIBS+=-lresolv
  CFLAGS+=-D__Darwin_
  BINDIR=/opt/sbin
  LIBDIR=/opt/lib/astmanproxy
  CONFDIR=/opt/etc/asterisk
  CONFDIR_REAL=/opt/etc/asterisk
  PERMDIR=/opt/etc/asterisk
  PERMDIR_REAL=/opt/etc/asterisk
  LOGDIR=/opt/log/asterisk
  OBJS+=dlfcn.o poll.o
  ASTLINK=-Wl,-force_flat_namespace,-dynamic
  SOLINK=-dynamic -bundle -undefined suppress -force_flat_namespace
else
  #These are used for all but Darwin
  LIBS+=-ldl -pthread
  ASTLINK=-Wl,-E
  SOLINK=-shared -Xlinker -x
  LOGDIR=/var/log/asterisk   
endif

OBJS += $(MODS:%=%.o)
MODDIR := $(LIBDIR)/modules
CONF_TARGET:= $(CONFDIR_REAL)/$(CONFFILE)
PERM_TARGET:= $(PERMDIR_REAL)/$(PERMFILE)
DEFINES:=-DAMI_WITH_SSL '-DPROXY_VERSION="$(VERSION)"' '-DCDIR="$(CONFDIR)"' '-DCFILE="$(CONFFILE)"'
DEFINES+='-DMDIR="$(MODDIR)"' '-DPDIR="$(PERMDIR)"' '-DPFILE="$(PERMFILE)"'
VPATH = src

# Add -g below for debug/GDB symbols
#CFLAGS+= $(DEFINES) -Wall -O2 -dynamic -D_REENTRANT -fPIC
CFLAGS+= $(DEFINES) -Wall -O2 -D_REENTRANT -fPIC -Isrc/include -I/usr/include/openssl -I-

# For printing only
SRCS := $(MODS:%=%.c)
HDRS := astmanproxy.h

all: astmanproxy

astmanproxy: $(OBJS) $(SOBJS)
	$(CC) $(CFLAGS) -o $@ $(ASTLINK) $(OBJS) $(LIBS)

$(OBJS): %.o: %.c
	$(CC) $(CFLAGS) $(INCLUDES) -c -o $@ $<

$(SOBJS): %.so: %.o
	$(CC) $(SOLINK) $< -o $@

install: uninstall all
	install -d $(BINDIR)
	install astmanproxy $(BINDIR)
	install -d $(LIBDIR)
	install -d $(MODDIR)
	install $(SOBJS) $(MODDIR)
	install -d $(CONFDIR_REAL)
	if [ ! -f $(CONF_TARGET) ]; then \
		install $(CONFFILE) $(CONF_TARGET); \
	fi
	if [ ! -f $(PERM_TARGET) ]; then \
		install $(PERMFILE) $(PERM_TARGET); \
	fi
	@echo "Installation Complete!"

uninstall:
	rm -f $(BINDIR)/astmanproxy
	cd $(MODDIR); rm -f $(SOBJS)
	@echo "Successfully uninstalled!"

dist: clean
	rm -f $(DISTDIR)/astmanproxy-${VERSION}*; \
	cd ..; tar czf $(DISTDIR)/astmanproxy-${VERSION}-`date +%Y%m%d-%H%M`.tgz astmanproxy-${VERSION}; \
        /usr/bin/scp $(DISTDIR)/astmanproxy-${VERSION}-*.tgz root@www.popvox.com:$(DISTDIR); \
	/usr/bin/ssh www.popvox.com "ln -sf $(DISTDIR)/astmanproxy-${VERSION}-*.tgz $(DISTDIR)/astmanproxy-latest.tgz"

clean:
	rm -f *.o *.so core *~ astmanproxy;

print:
	more Makefile $(HDRS) $(SRCS) | enscript -Ec -2r -j; exit 0
	@echo "Printing Complete!"

love:
	@echo "Here?  Now?"