diff --git a/channels/h323/.cvsignore b/channels/h323/.cvsignore index 4671378aef..de62da24dd 100755 --- a/channels/h323/.cvsignore +++ b/channels/h323/.cvsignore @@ -1 +1,6 @@ .depend +Makefile.ast +ast_h323.dep +ast_h323.cxx +ast_h323.o +libchanh323.a diff --git a/channels/h323/Makefile b/channels/h323/Makefile index f35cfb226e..0e9266164e 100755 --- a/channels/h323/Makefile +++ b/channels/h323/Makefile @@ -1,117 +1,41 @@ -# include the Makefile of OpenH323 +# +# Makefile +# +# Make file for OpenH323 support layer +# + +# Verify those options with main Makefile +STDCCFLAGS += -DNDEBUG +STDCCFLAGS += $(shell grep ^DEBUG_THREADS ../../Makefile | sed -e "s/^DEBUG_THREADS[ ]*=//" -e "s/\([^\#]*\)\#.*/\1/") +STDCCFLAGS += -I../../include +STDCCFLAGS += -Wmissing-prototypes +STDCCFLAGS += -fPIC +#OPTCCFLAGS += +CFLAGS += -pipe +TARGET += libchanh323.a +TARGET += Makefile.ast +SOURCES = ast_h323.cxx +OBJDIR = . ifndef OPENH323DIR OPENH323DIR=$(HOME)/openh323 endif -ifndef PWLIBDIR -PWLIBDIR=$(HOME)/pwlib -endif +include $(OPENH323DIR)/openh323u.mak -ifndef ASTERISKDIR -ASTERISKDIR= /usr/lib/asterisk/modules -endif +$(SOURCES):: $(SOURCES:.cxx=.cpp) + ln -f $< $@ -ifndef ASTETCDIR -ASTETCDIR=/etc/asterisk -endif +$(SOURCES):: Makefile ../../Makefile + touch $(SOURCES) -PWLIBVERSIONFILE=$(PWLIBDIR)/version.h -OPENH323VERSIONFILE=$(OPENH323DIR)/version.h +libchanh323.a: $(OBJS) + ar crv $@ $(OBJS) -PWLIB_MAJOR_VERSION=$(shell test -e ${PWLIBVERSIONFILE} && cat ${PWLIBVERSIONFILE} | grep MAJOR_VERSION | cut -f3 -d' ') -PWLIB_MINOR_VERSION=$(shell test -e ${PWLIBVERSIONFILE} && cat ${PWLIBVERSIONFILE} | grep MINOR_VERSION | cut -f3 -d' ') -PWLIB_BUILD_NUMBER=$(shell test -e ${PWLIBVERSIONFILE} && cat ${PWLIBVERSIONFILE} | grep BUILD_NUMBER | cut -f3 -d' ') -PWLIB_VERSION="${PWLIB_MAJOR_VERSION}.${PWLIB_MINOR_VERSION}.${PWLIB_BUILD_NUMBER}" +Makefile.ast: FORCE + @echo H323CFLAGS = $(STDCCFLAGS) $(OPTCCFLAGS) $(CFLAGS) >$@.tmp + @echo H323LDFLAGS = $(CFLAGS) $(LDFLAGS) >>$@.tmp + @echo H323LDLIBS = $(LDLIBS) $(ENDLDLIBS) $(ENDLDFLAGS) >>$@.tmp + @if [ -r $@ ] && cmp -s $@ $@.tmp; then rm -f $@.tmp; else mv -f $@.tmp $@; fi -OPENH323_MAJOR_VERSION=$(shell test -e ${OPENH323VERSIONFILE} && cat ${OPENH323VERSIONFILE} | grep MAJOR_VERSION | cut -f3 -d' ') -OPENH323_MINOR_VERSION=$(shell test -e ${OPENH323VERSIONFILE} && cat ${OPENH323VERSIONFILE} | grep MINOR_VERSION | cut -f3 -d' ') -OPENH323_BUILD_NUMBER=$(shell test -e ${OPENH323VERSIONFILE} && cat ${OPENH323VERSIONFILE} | grep BUILD_NUMBER | cut -f3 -d' ') -OPENH323_VERSION="${OPENH323_MAJOR_VERSION}.${OPENH323_MINOR_VERSION}.${OPENH323_BUILD_NUMBER}" - -# -# This needs to be updated to deal with more than just little endian machines -# -OSARCH=$(shell uname -s) -PROC=$(shell uname -m) -ifneq (${OSARCH},FreeBSD) -ifneq (${OSARCH},NetBSD) -ifneq (${PROC},ppc) -CFLAGS += -march=$(PROC) -endif -endif -endif -CFLAGS += -DPBYTE_ORDER=PLITTLE_ENDIAN - -ifeq (${OSARCH},Linux) -LDLIBS+=-ldl -endif - -############################################# -# -# Only change below if you know WTF your doing -# -OSARCH=$(shell uname -s) -CFLAGS += -DNDEBUG -DDO_CRASH -DDEBUG_THREADS -CFLAGS += -pipe -Wall -fPIC -Wmissing-prototypes -CFLAGS += -D_REENTRANT -D_GNU_SOURCE -CFLAGS += -I../../include -CFLAGS += -I$(PWLIBDIR)/include -CFLAGS += -I$(OPENH323DIR)/include -Wno-missing-prototypes - -all: checkversion depend libchanh323.a - -samples: - if [ -f $(ASTETCDIR)/h323.conf ]; then \ - mv -f $(ASTETCDIR)/h323.conf $(ASTETCDIR)/h323.conf.old ; \ - fi ; - install h323.conf.sample $(ASTETCDIR)/h323.conf - - -libchanh323.a: ast_h323.o - ar cr $@ $< - -ast_h323.o: ast_h323.cpp - $(CXX) -g -c -o $@ $(CFLAGS) $< - -ifneq ($(wildcard .depend),) -include .depend -endif - -chan_h323.so: - $(CXX) -g -shared -Xlinker -x -o chan_h323.so chan_h323.o ast_h323.o -L$(PWLIBDIR)/lib -lpt_linux_x86_r -L$(OPENH323DIR)/lib -lh323_linux_x86_r -L/usr/lib $(CHANH323LIB) - -chan_h323_d.so: chan_h323.o ast_h323.o - $(CXX) -shared -Xlinker -x -o chan_h323.so chan_h323.o ast_h323.o -L$(PWLIBDIR)/lib -lpt_linux_x86_d -L$(OPENH323DIR)/lib -lh323_linux_x86_d -L/usr/lib $(CHANH323LIB) - -chan_h323_s.so: chan_h323.o ast_h323.o - $(CXX) -shared -Xlinker -x -o chan_h323.so chan_h323.o ast_h323.o -L$(PWLIBDIR)/lib -lpt_linux_x86_r_s -L$(OPENH323DIR)/lib -lh323_linux_x86_r_s -L/usr/lib $(CHANH323LIB) -clean: - rm -f *.o *.so core.* libchanh323.a .depend - -depend: .depend - -.depend: - ../../mkdep $(CFLAGS) `ls *.cpp` - -checkversion: - @echo -n "PWLib version is ${PWLIB_VERSION}... " - @if [ ${PWLIB_MAJOR_VERSION} -gt 1 -o ${PWLIB_MAJOR_VERSION} -eq 1 -a ${PWLIB_MINOR_VERSION} -gt 8 -o ${PWLIB_MAJOR_VERSION} -eq 1 -a ${PWLIB_MINOR_VERSION} -eq 8 -a ${PWLIB_BUILD_NUMBER} -ge 1 ]; then \ - echo "ok" ; \ - else \ - echo "BAD" ; \ - echo ; \ - echo "Please read README for further details!" ; \ - echo ; \ - exit 1 ; \ - fi - @echo -n "OpenH323 version is ${OPENH323_VERSION}... " - @if [ ${OPENH323_MAJOR_VERSION} -gt 1 -o ${OPENH323_MAJOR_VERSION} -eq 1 -a ${OPENH323_MINOR_VERSION} -gt 15 -o ${OPENH323_MAJOR_VERSION} -eq 1 -a ${OPENH323_MINOR_VERSION} -eq 15 -a ${OPENH323_BUILD_NUMBER} -ge 1 ]; then \ - echo "ok" ; \ - else \ - echo "BAD" ; \ - echo ; \ - echo "Please read README for further details!" ; \ - echo ; \ - exit 1 ; \ - fi +FORCE: diff --git a/channels/h323/README b/channels/h323/README index 2f8c23d7e9..794ba2d448 100755 --- a/channels/h323/README +++ b/channels/h323/README @@ -19,10 +19,10 @@ your distro did not install them for you without your knowledge. To compile this code -------------------- -Once PWLib and Open H.323 have been compiled per their specific build -instructions, issue a make in the asterisk/channels/h323 directory, -then go back to the Asterisk source top level directory and issue a make -install. +Once PWLib and Open H.323 have been compiled per their specific build +instructions, issue a make in the asterisk/channels/h323 directory with +argument used to build PWLib and OpenH323 (for example, make opt), then go +back to the Asterisk source top level directory and issue a make install. The most common compile error @@ -45,7 +45,7 @@ cd /path/to/openh323 ./configure make clean opt cd /path/to/asterisk/channels/h323 -make +make opt cd /path/to/asterisk make install