summaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile86
1 files changed, 74 insertions, 12 deletions
diff --git a/Makefile b/Makefile
index 66ec1b8..4b22697 100644
--- a/Makefile
+++ b/Makefile
@@ -3,15 +3,20 @@
OSARCH=$(shell uname -s)
OSREV=$(shell uname -r)
-VERSION := 1.13
-DESTDIR :=
+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
-
+CERTDIR := /var/lib/asterisk/certs
+PROXYCERT := $(CERTDIR)/proxy-server.pem
+PROXYSSLCONF := $(CONFDIR)/proxy-ssl.conf
CC := gcc
#LIBS := -lpthread
@@ -20,25 +25,27 @@ PREFIX:= /usr/local
BINDIR := $(DESTDIR)$(PREFIX)/sbin
# For compilation dependencies
-MODS := astmanproxy config common proxyfunc log
+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
+ LIBS+=-lresolv
CFLAGS+=-D__Darwin_
-# -DFINK_BUILD
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
+ LIBS+=-ldl -pthread
ASTLINK=-Wl,-E
SOLINK=-shared -Xlinker -x
LOGDIR=/var/log/asterisk
@@ -47,17 +54,19 @@ endif
OBJS += $(MODS:%=%.o)
MODDIR := $(LIBDIR)/modules
CONF_TARGET:= $(CONFDIR_REAL)/$(CONFFILE)
-DEFINES:='-DPROXY_VERSION="$(VERSION)"' '-DCDIR="$(CONFDIR)"' '-DCFILE="$(CONFFILE)"' '-DMDIR="$(MODDIR)"'
+PERM_TARGET:= $(PERMDIR_REAL)/$(PERMFILE)
+DEFINES:='-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
+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
+all: astmanproxy cert
astmanproxy: $(OBJS) $(SOBJS)
$(CC) $(CFLAGS) -o $@ $(ASTLINK) $(OBJS) $(LIBS)
@@ -68,6 +77,56 @@ $(OBJS): %.o: %.c
$(SOBJS): %.so: %.o
$(CC) $(SOLINK) $< -o $@
+SERIAL=`date "+%Y%m%d%H%M%S"`
+
+cert:
+ if [ ! -f $(PROXYCERT) ]; then \
+ umask 77 ; \
+ PEM1=`/bin/mktemp /tmp/openssl.XXXXXX` ; \
+ PEM2=`/bin/mktemp /tmp/openssl.XXXXXX` ; \
+ if [ ! -f $(PROXYSSLCONF) ]; then \
+ install ./configs/ssl.conf $(PROXYSSLCONF); \
+ fi; \
+ /usr/bin/openssl req $(UTF8) -newkey rsa:1024 -keyout $$PEM1 -nodes -x509 -days 365 -out $$PEM2 -set_serial $(SERIAL) -config $(PROXYSSLCONF) ; \
+ mkdir -p $(CERTDIR); \
+ cat $$PEM1 > $(PROXYCERT) ; \
+ echo "" >> $(PROXYCERT) ; \
+ cat $$PEM2 >> $(PROXYCERT) ; \
+ rm $$PEM1 $$PEM2; \
+ fi
+
+certificate:
+ createcert="1"; \
+ if [ -f $(PROXYCERT) ]; then \
+ echo -n "The certificate already exists, Do you really want to create new one(yes/no)?"; \
+ read answer; \
+ if [ "$$answer" = "yes" ]; then \
+ echo "I am creating a new certificate, Old one is copied as server.pem.old ";\
+ sudo cp /var/lib/asterisk/certs/server.pem /var/lib/asterisk/certs/server.pem.old; \
+ elif [ "$$answer" = "no" ]; then \
+ echo "Certificate already exists, I am not creating a new certificate,";\
+ createcert="0"; \
+ else \
+ echo "You need to enter either yes or no"; \
+ createcert="0"; \
+ fi; \
+ fi; \
+ if [ "$$createcert" = "1" ]; then \
+ umask 77 ; \
+ PEM1=`/bin/mktemp /tmp/openssl.XXXXXX` ; \
+ PEM2=`/bin/mktemp /tmp/openssl.XXXXXX` ; \
+ if [ ! -f $(PROXYSSLCONF) ]; then \
+ install ./configs/ssl.conf $(PROXYSSLCONF); \
+ fi; \
+ /usr/bin/openssl req $(UTF8) -newkey rsa:1024 -keyout $$PEM1 -nodes -x509 -days 365 -out $$PEM2 -set_serial $(SERIAL) -config $(PROXYSSLCONF) ; \
+ mkdir -p $(CERTDIR); \
+ cat $$PEM1 > $(PROXYCERT) ; \
+ echo "" >> $(PROXYCERT) ; \
+ cat $$PEM2 >> $(PROXYCERT) ; \
+ rm $$PEM1 $$PEM2; \
+ fi
+
+
install: uninstall all
install -d $(BINDIR)
install astmanproxy $(BINDIR)
@@ -78,6 +137,9 @@ install: uninstall all
if [ ! -f $(CONF_TARGET) ]; then \
install $(CONFFILE) $(CONF_TARGET); \
fi
+ if [ ! -f $(PERM_TARGET) ]; then \
+ install $(PERMFILE) $(PERM_TARGET); \
+ fi
@echo "Installation Complete!"
uninstall:
@@ -92,7 +154,7 @@ dist: clean
/usr/bin/ssh www.popvox.com "ln -sf $(DISTDIR)/astmanproxy-${VERSION}-*.tgz $(DISTDIR)/astmanproxy-latest.tgz"
clean:
- rm -f *.o *.so core *~ astmanproxy;
+ rm -f *.o *.so core *~ astmanproxy proxy-server.pem;
print:
more Makefile $(HDRS) $(SRCS) | enscript -Ec -2r -j; exit 0