[Ekiga-list] Ekiga win32 cross compilation on ubuntu 9.04



Hi,
            Please find the attached makefile which I am using to cross compile ekiga 3.2.6 on ubuntu 9.04 ( ptlib 2.6.5 and opal 3.6.6 ). I have also upgraded to mingw32 from 3.13.1 to 3.15 runtime libraries to compile ffmpeg.
 
opal 3.6.6 configure issues

DEBUG: -lpt_d -lldap -llber -lldap_r -lssl -lcrypto -lexpat -lSDL
-lpthread -lresolv -ldl
RELEASE: -lpt -lldap -llber -lldap_r -lssl -lcrypto -lexpat -lSDL
-lpthread -lresolv -ldl
checking ptlib version... 2.5.2
configure: error: Could not find a linkable ptlib in specified environment
to verify symbols (debug ptlib: no)



Ptlib 2.6.5 compliation


make  -j1 DEBUG=1 debug -C /home/ekiga-3.2.6/win32/ptlib-2.6.5 2>&1 | tee ptlib-make.log
make[1]: Entering directory `/home/ekiga-3.2.6/win32/ptlib-2.6.5'
make DEBUG=1 default_target
make[2]: Entering directory `/home/ekiga-3.2.6/win32/ptlib-2.6.5'
make[2]: Leaving directory `/home/ekiga-3.2.6/win32/ptlib-2.6.5'
make[2]: Entering directory `/home/ekiga-3.2.6/win32/ptlib-2.6.5/src'
make DEBUG=1 default_target
make[3]: Entering directory `/home/ekiga-3.2.6/win32/ptlib-2.6.5/src'
[CC] ptclib/psasl.cxx
[CC] ptclib/pldap.cxx
[CC] ptclib/pils.cxx
[CC] ptclib/pssl.cxx
[CC] ptclib/vsdl.cxx
[CC] ptlib/common/vfakeio.cxx
[CC] ptlib/common/videoio.cxx
[CC] ptlib/common/vconvert.cxx
[CC] ptlib/common/pvidchan.cxx
[CC] ptlib/common/tinyjpeg.cxx
[CC] ptlib/common/jidctflt.cxx
[CC] ptlib/unix/shmvideo.cxx
make[3]: *** No rule to make target `/home/ekiga-3.2.6/win32/ptlib-2.6.5/lib_linux_x86/obj_d/vfw.o', needed by `/home/ekiga-3.2.6/win32/ptlib-2.6.5/lib_linux_x86/libpt_d_s.a'.  Stop.
make[3]: Leaving directory `/home/ekiga-3.2.6/win32/ptlib-2.6.5/src'
make[2]: *** [debug] Error 2
make[2]: Leaving directory `/home/ekiga-3.2.6/win32/ptlib-2.6.5/src'
make[1]: *** [debug] Error 2
make[1]: Leaving directory `/home/ekiga-3.2.6/win32/ptlib-2.6.5'
make DEBUG=1 -C /home/ekiga-3.2.6/win32/ptlib-2.6.5 install 2>&1
make[1]: Entering directory `/home/ekiga-3.2.6/win32/ptlib-2.6.5'
( for dir in /usr/local/lib \
             /usr/local/bin \
             /usr/local/include/ptlib \
                     /usr/local/include/ptlib/unix/ptlib \
                     /usr/local/include/ptclib \
                     /usr/local/share/ptlib/make ; \
        do mkdir -p $dir ; chmod 755 $dir ; \
    done )
/usr/bin/install -c -m 444 /home/ekiga-3.2.6/win32/ptlib-2.6.5/lib_linux_x86/libpt_d.so.2.6.5 /usr/local/lib
/usr/bin/install: cannot stat `/home/ekiga-3.2.6/win32/ptlib-2.6.5/lib_linux_x86/libpt_d.so.2.6.5': No such file or directory
make[1]: *** [install] Error 1
make[1]: Leaving directory `/home/ekiga-3.2.6/win32/ptlib-2.6.5'
make: *** [/home/ekiga-3.2.6/win32/lib/libpt_d.2.6.5.dll] Error 2
root EICPU1229:/home/ekiga-3.2.6/win32# make
make  -j1 DEBUG=1 debug -C /home/ekiga-3.2.6/win32/ptlib-2.6.5 2>&1 | tee ptlib-make.log
make[1]: Entering directory `/home/ekiga-3.2.6/win32/ptlib-2.6.5'
make DEBUG=1 default_target
make[2]: Entering directory `/home/ekiga-3.2.6/win32/ptlib-2.6.5'
make[2]: Leaving directory `/home/ekiga-3.2.6/win32/ptlib-2.6.5'
make[2]: Entering directory `/home/ekiga-3.2.6/win32/ptlib-2.6.5/src'
make DEBUG=1 default_target
make[3]: Entering directory `/home/ekiga-3.2.6/win32/ptlib-2.6.5/src'
make[3]: *** No rule to make target `/home/ekiga-3.2.6/win32/ptlib-2.6.5/lib_linux_x86/obj_d/vfw.o', needed by `/home/ekiga-3.2.6/win32/ptlib-2.6.5/lib_linux_x86/libpt_d_s.a'.  Stop.
make[3]: Leaving directory `/home/ekiga-3.2.6/win32/ptlib-2.6.5/src'
make[2]: *** [debug] Error 2
make[2]: Leaving directory `/home/ekiga-3.2.6/win32/ptlib-2.6.5/src'
make[1]: *** [debug] Error 2
make[1]: Leaving directory `/home/ekiga-3.2.6/win32/ptlib-2.6.5'
make DEBUG=1 -C /home/ekiga-3.2.6/win32/ptlib-2.6.5 install 2>&1
make[1]: Entering directory `/home/ekiga-3.2.6/win32/ptlib-2.6.5'
( for dir in /usr/local/lib \
             /usr/local/bin \
             /usr/local/include/ptlib \
                     /usr/local/include/ptlib/unix/ptlib \
                     /usr/local/include/ptclib \
                     /usr/local/share/ptlib/make ; \
        do mkdir -p $dir ; chmod 755 $dir ; \
    done )
/usr/bin/install -c -m 444 /home/ekiga-3.2.6/win32/ptlib-2.6.5/lib_linux_x86/libpt_d.so.2.6.5 /usr/local/lib
/usr/bin/install: cannot stat `/home/ekiga-3.2.6/win32/ptlib-2.6.5/lib_linux_x86/libpt_d.so.2.6.5': No such file or directory
make[1]: *** [install] Error 1
make[1]: Leaving directory `/home/ekiga-3.2.6/win32/ptlib-2.6.5'
make: *** [/home/ekiga-3.2.6/win32/lib/libpt_d.2.6.5.dll] Error 2


Let me know if you need more details.
-- 
Thanks & Regards,
Sohil Shah

#!/usr/bin/make -f

SILENT := 0
# ********** DEBUG := 0 for release version **********
# *********** DEBUG := 1 for debug version ***********
DEBUG := 1
MAKEFLAGS:=
MAKEOPTS:=$(MAKEFLAGS)
MAKE_LIB_OPTS:=$(MAKEFLAGS)

BUILDROOT := $(CURDIR)
TARGETDIR := $(BUILDROOT)/dist
SRCDIR    := $(BUILDROOT)/src
INCLUDEDIR:=$(BUILDROOT)/include
LIBDIR    := $(BUILDROOT)/lib
BINDIR    := $(BUILDROOT)/bin
WIN32_DIFF_DIR := $(CURDIR)/diff
REL_DIFF_DIR := diff

export PKG_CONFIG_LIBDIR:=$(LIBDIR)

export DEB_BUILD_GNU_TYPE:=$(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
export DEB_HOST_GNU_TYPE:="i586-pc-mingw32"

WGET := wget -nv -T 60 -N --no-proxy

HOST_TOOL_PREFIX:=i586-mingw32msvc

REALCC:=$(HOST_TOOL_PREFIX)-gcc
REALCXX:=$(HOST_TOOL_PREFIX)-g++
CONCURRENCY:=1

MACH_FLAGS:=-march=pentium-mmx
OPTI_FLAGS:=-O3 -fomit-frame-pointer
#	IX86_TYPE according to Intel
#	0 : 8086/88, 2 = 80286, 3 = 80386
#	4 = 80486, 5 = Pentium(R) Processor, 6 = PentiumPro(R) Processor
#       7 or higher = Processor beyond the PentiumPro6(R) Processor
IX86_TYPE:=5


ifeq ($(DEBUG),1)
        export CC=$(REALCC) -mms-bitfields -gstabs
        export CXX=$(REALCXX) -mms-bitfields -gstabs
else
        export CC=$(REALCC) -mms-bitfields
        export CXX=$(REALCXX) -mms-bitfields
endif

export LD:=$(HOST_TOOL_PREFIX)-ld
export NM:=$(HOST_TOOL_PREFIX)-nm
export AR:=$(HOST_TOOL_PREFIX)-ar
export RANLIB:=$(HOST_TOOL_PREFIX)-ranlib
export DLLTOOL:=$(HOST_TOOL_PREFIX)-dlltool
export DLLWRAP:=$(HOST_TOOL_PREFIX)-dllwrap
export OBJDUMP:=$(HOST_TOOL_PREFIX)-objdump
export RC:=$(HOST_TOOL_PREFIX)-windres
export STRIP:=$(HOST_TOOL_PREFIX)-strip
export AS:=$(HOST_TOOL_PREFIX)-as
export CFLAGS:=-I$(INCLUDEDIR) $(MACH_FLAGS) -DPTRACING
export CXXFLAGS:=-I$(INCLUDEDIR) $(MACH_FLAGS) -DPTRACING
export LDFLAGS:=-L$(LIBDIR)  $(MACH_FLAGS)
export PKG_CONFIG_PATH:=$(LIBDIR)/pkgconfig
export PATH:=$(BINDIR):$(PATH)
export LDD:=$(BUILDROOT)/$(HOST_TOOL_PREFIX)-ldd.sh

FTP_GNOME_ORG = ftp.gnome.org/pub/gnome/
# FTP_GNOME_ORG = ftp.belnet.be/mirror/ftp.gnome.org

EKIGA_VER := 3.2.6
EKIGA_DIR := $(BUILDROOT)/ekiga-$(EKIGA_VER)
EKIGA_URL := http://$(FTP_GNOME_ORG)/sources/ekiga/3.2/
EKIGA_ARCHIVE := ekiga-$(EKIGA_VER).tar.gz
EKIGA_PREFIX:= $(TARGETDIR)/Ekiga
EKIGA_INSTALLER_DIR := $(BUILDROOT)/nsisinstaller
ifeq ($(DEBUG),1)
EKIGA_VERSION := $(EKIGA_VER)-debug
else
EKIGA_VERSION := $(EKIGA_VER)-release
endif
EKIGA_INSTALLER := ekiga-setup-$(EKIGA_VERSION).exe

OPAL_VER:= 3.6.6
OPAL_DIR:= $(BUILDROOT)/opal-$(OPAL_VER)
OPAL_ARCHIVE := opal-$(OPAL_VER).tar.gz
OPAL_URL:= http://$(FTP_GNOME_ORG)/sources/opal/3.6/
ifeq ($(DEBUG),1)
OPAL_LIB := libopal_d.$(OPAL_VER).dll
else
OPAL_LIB := libopal.$(OPAL_VER).dll
endif

PTLIB_VER:= 2.6.5
PTLIB_DIR:= $(BUILDROOT)/ptlib-$(PTLIB_VER)
PTLIB_ARCHIVE := ptlib-$(PTLIB_VER).tar.gz
PTLIB_URL:= http://$(FTP_GNOME_ORG)/sources/ptlib/2.6/
ifeq ($(DEBUG),1)
PTLIB_LIB := libpt_d.$(PTLIB_VER).dll
else
PTLIB_LIB := libpt.$(PTLIB_VER).dll
endif

OPENLDAP_VER := 2.3.28
OPENLDAP_DIR := $(BUILDROOT)/openldap-$(OPENLDAP_VER)
OPENLDAP_ARCHIVE := openldap-$(OPENLDAP_VER).tgz
#OPENLDAP_URL := http://www.openldap.org/software/download/OpenLDAP/openldap-release
OPENLDAP_URL := http://mirror.switch.ch/ftp/pool/3/mirror/OpenLDAP/openldap-release/

LIBSASL2_VER := 2.1.22
LIBSASL2_DIR := $(BUILDROOT)/cyrus-sasl-$(LIBSASL2_VER)
LIBSASL2_ARCHIVE := cyrus-sasl-$(LIBSASL2_VER).zip
LIBSASL2_URL := http://developer.pidgin.im/static/win32

OGG_VER := 1.1.3
OGG_DIR := $(BUILDROOT)/libogg-$(OGG_VER)
OGG_ARCHIVE := libogg-$(OGG_VER).tar.gz
OGG_URL := http://downloads.xiph.org/releases/ogg

THEORA_VER := 1.0
THEORA_DIR := $(BUILDROOT)/libtheora-$(THEORA_VER)
THEORA_ARCHIVE := libtheora-$(THEORA_VER).tar.gz
THEORA_URL := http://downloads.xiph.org/releases/theora

SPEEX_VER := 1.2rc1
SPEEX_DIR := $(BUILDROOT)/speex-$(SPEEX_VER)
SPEEX_ARCHIVE := speex-$(SPEEX_VER).tar.gz
SPEEX_URL := http://downloads.us.xiph.org/releases/speex

GTK_VER := 2.16.0-2
GTK_URL := http://$(FTP_GNOME_ORG)/binaries/win32/gtk+/2.16
GTK_ARCHIVE := gtk+-dev_$(GTK_VER)_win32.zip

GTK_BIN_VER := 2.16.0
GTK_INSTALLER_URL := http://downloads.sourceforge.net/gtk-win
GTK_BIN_EXE := gtk2-runtime-2.16.0-2009-03-22-ash.exe

GLIB_VER := 2.18.0-2
GLIB_URL := http://$(FTP_GNOME_ORG)/binaries/win32/glib/2.18
GLIB_ARCHIVE := glib-dev_$(GLIB_VER)_win32.zip

ATK_VER := 1.24.0-1
ATK_URL := http://$(FTP_GNOME_ORG)/binaries/win32/atk/1.24
ATK_ARCHIVE := atk-dev_$(ATK_VER)_win32.zip

CAIRO_VER := 1.8.6-1
CAIRO_URL := http://$(FTP_GNOME_ORG)/binaries/win32/dependencies
CAIRO_ARCHIVE := cairo-dev_$(CAIRO_VER)_win32.zip

PANGO_VER := 1.24.0-1
PANGO_URL := http://$(FTP_GNOME_ORG)/binaries/win32/pango/1.24
PANGO_ARCHIVE := pango-dev_$(PANGO_VER)_win32.zip

XML2_VER := 2.7.3
XML2_DIR := libxml2-$(XML2_VER)
XML2_URL := ftp://xmlsoft.org/libxml2
XML2_ARCHIVE := libxml2-$(XML2_VER).tar.gz

LIBPNG_VER := 1.2.35
GNUWIN32_URL := http://downloads.sourceforge.net/gnuwin32

EXPAT_VER = 2.0.0
EXPAT_DIR = $(BUILDROOT)/expat-$(EXPAT_VER)
EXPAT_ARCHIVE := expat-$(EXPAT_VER).tar.gz
EXPAT_URL := http://kent.dl.sourceforge.net/sourceforge/expat

LIBINTL_VER := 0.14.4

REGEX_DIR := $(BUILDROOT)/regex
REGEX_ARCHIVE := regex

SIGC_VER := 2.0.18
SIGC_URL := http://$(FTP_GNOME_ORG)/sources/libsigc++/2.0
SIGC_ARCHIVE := libsigc++-$(SIGC_VER).tar.gz
SIGC_DIR := libsigc++-$(SIGC_VER)

GIMP_URL := http://www.gimp.org/~tml/gimp/win32

GETTEXT_VER := 0.17-1
GETTEXT_URL :=http://$(FTP_GNOME_ORG)/binaries/win32/dependencies
GETTEXT_ARCHIVE := gettext-runtime-dev-$(GETTEXT_VER).zip

ICONV_VER := 1.9.1
ICONV_ARCHIVE := libiconv-$(ICONV_VER).bin.woe32.zip

GIT_FFMPEG_REV := reset --hard d962d69f2ef1bcd3b4
GIT_FFMPEG_REV2 := reset --hard 8c5952c02bfad4bfa6
FFMPEG_URL := git://git.ffmpeg.org/ffmpeg/
FFMPEG_URL2 := git://git.ffmpeg.org/libswscale/
FFMPEG_ARCHIVE := ffmpeg
FFMPEG_ARCHIVE2 := ffmpeg/libswscale
FFMPEG_DIR := $(BUILDROOT)/ffmpeg
FFMPEG_DIR2 := $(BUILDROOT)/ffmpeg/libswscale

GIT_X264_REV := reset --hard d2e1e1c35c43ea9c90c9211be
X264_URL := git://git.videolan.org/x264.git
X264_DIR := $(BUILDROOT)/x264
X264_ARCHIVE := x264

NSIS_VER := 2.43
NSIS_URL := http://downloads.sourceforge.net/nsis
NSISPROCESSES_URL := http://nsis.sourceforge.net/mediawiki/images/f/f3/
NSISSYTEM_DIR := /usr/share/nsis/Contrib/Modern\ UI
NSISPLUGIN_DIR := $(BUILDROOT)/nsisplugins
NSISINTALLER_DIR := $(BUILDROOT)/nsisinstaller

LN:=ln
RM:=rm
CP:=cp
MV:=mv
SVN:=svn
GIT:=git
ACLOCAL:=aclocal-1.9

DOC_LINGUAS=bg de es fr pt_BR sv uk

ifneq (,$(CONCURRENCY))
        MAKEOPTS+=-j$(CONCURRENCY)
endif

confflags:=--prefix=$(BUILDROOT) --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE)
confptlib:=--prefix=$(BUILDROOT) --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) \
	   --enable-vfw --enable-vidfile --with-directx-includedir=$(EKIGA_DIR)/win32/directx \
	   --disable-qos --disable-vidfile --disable-alsa --disable-esd --disable-oss --disable-sunaudio \
	   --disable-v4l --disable-v4l2 --disable-bsdvideo --disable-avc --disable-dc
confopal :=--prefix=$(BUILDROOT) --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) \
	   --with-ffmpeg-dir=$(FFMPEG_DIR) --disable-ffmpeg-h263

confekiga:= $(confflags) \
	    --with-directx-dir=$(EKIGA_DIR)/win32/directx --prefix=$(EKIGA_PREFIX) \
	    --bindir=$(EKIGA_PREFIX) --datadir=$(EKIGA_PREFIX) \
	    --sysconfdir=$(EKIGA_PREFIX) --libdir=$(EKIGA_PREFIX) --disable-gnome \
	    --disable-dbus --disable-avahi --disable-xv --with-ldap-dir=$(OPENLDAP_DIR) \
	    --with-libsasl2-dir=$(LIBSASL2_DIR) \
	    CFLAGS="$(CFLAGS) -mwindows" CXXFLAGS="$(CXXFLAGS) -mwindows"

confffmpeg:=--cross-prefix=i586-mingw32msvc- --enable-shared --enable-memalign-hack \
	    --enable-cross-compile --enable-w32threads --arch=i686  --target-os=mingw32 \
            --disable-ffserver --disable-ffmpeg --disable-ffplay \
	    --disable-parsers --enable-parser=h264 --enable-parser=mpeg4video --enable-parser=h263 \
	    --disable-decoders --enable-decoder=h264 --enable-decoder=mpeg4  --enable-decoder=h263 \
	    --disable-muxers --enable-muxer=h264 --enable-muxer=mpeg4 --enable-muxer=h263 \
	    --disable-encoders --enable-encoder=mpeg4 --enable-encoder=h263 \
	    --disable-protocols --disable-bsfs --disable-ffplay --prefix=$(BUILDROOT) \
            --libdir=$(LIBDIR) --extra-ldflags=-Wl,-static

confx264:=  --disable-avis-input --prefix=$(BUILDROOT) --host=$(DEB_HOST_GNU_TYPE)

conftheora:=--host=$(DEB_HOST_GNU_TYPE) --prefix=$(BUILDROOT) --disable-vorbistest --disable-sdltest --disable-examples

all: binaries $(TARGETDIR)/$(EKIGA_INSTALLER)
	@echo "Built on $(shell date)"

update-sources::
	@echo "Updating on $(shell date)"

update: update-sources

binaries:
	echo Checking prerequisites...
	hash $(REALCC) $(REALCXX) $(LD) $(NM) $(AR) $(RANLIB) $(DLLTOOL) $(DLLWRAP) $(OBJDUMP) $(RC) $(AS)||(echo You need to install mingw32;exit 1)
	hash tar unzip zip wget $(ACLOCAL) autoheader libtoolize automake-1.9 autoconf pkg-config gnome-autogen.sh bison gdk-pixbuf-csource||(echo we need more binaries ;exit 1)
	[ -f /usr/share/gnome-doc-utils/gnome-doc-utils.make ]||(echo gnome-doc-tools not installed;exit 1)
	[ -f /usr/lib/pkgconfig/gconf-2.0.pc ]||(echo libgconf2-dev not installed;exit 1)
	[ -f /usr/lib/pkgconfig/avahi-glib.pc ]||(echo libavahi-glib-dev not installed;exit 1)
	[ -f /usr/lib/pkgconfig/avahi-client.pc ]||(echo libavahi-client-dev not installed;exit 1)
	hash makensis||(echo nsis not installed;exit1) 	 
	hash xmlto||(echo xmlto not installed;exit1)
	hash git||(echo git not installed;exit1)
#       [ $(BUILDROOT) = $(CURDIR) ]||(echo You are supposed to run this as Makefile in $(BUILDROOT);exit 1)
	mkdir -p $(INCLUDEDIR) $(LIBDIR)/pkgconfig $(SRCDIR) $(BINDIR)
	$(RM) -f $(BINDIR)/cygpath
	$(LN) -s /bin/true $(BINDIR)/cygpath
	touch $@

### REGEX
update-sources:: 
	echo "--- Getting libregex..."
	mkdir -p $(SRCDIR)/$(REGEX_ARCHIVE)
	cd $(SRCDIR)/$(REGEX_ARCHIVE); \
	for i in regex.c regexec.c regex.h regex_internal.c regex_internal.h regcomp.c alloca_.h alloca.c strcase.h localcharset.c localcharset.h;do \
	  $(WGET) http://cvs.savannah.nongnu.org/viewcvs/*checkout*/gnulib/gnulib/lib/$$i ;\
	done

$(REGEX_DIR)/regex.h: $(SRCDIR)/$(REGEX_ARCHIVE)
	$(RM) -rf $(REGEX_DIR) 
	mkdir -p $(REGEX_DIR)
	$(CP) $(SRCDIR)/$(REGEX_ARCHIVE)/* $(REGEX_DIR)
	$(MV) $(REGEX_DIR)/alloca_.h $(REGEX_DIR)/alloca.h
	echo '//' >> $(REGEX_DIR)/config.h
	touch $@

$(LIBDIR)/libregex.a: binaries $(REGEX_DIR)/regex.h
	cd $(REGEX_DIR) ;\
	$(CC) -I$(INCLUDEDIR) -I. -c regex.c ;\
	$(CC) -I$(INCLUDEDIR) -I. -c alloca.c ;\
	$(CC) -I$(INCLUDEDIR) -I. -DLIBDIR=$(INCLUDEDIR) -c localcharset.c ;\
	$(AR) r libregex.a regex.o alloca.o localcharset.o
	$(CP) $(REGEX_DIR)/libregex.a $(LIBDIR)
	$(CP) $(REGEX_DIR)/regex.h $(INCLUDEDIR)
	$(CP) $(REGEX_DIR)/alloca.h $(INCLUDEDIR)
	$(CP) $(REGEX_DIR)/localcharset.h $(INCLUDEDIR)
	touch $@

### libsigc++
update-sources::
	echo --- Getting libsigc++ ...
	$(WGET) -P src $(SIGC_URL)/$(SIGC_ARCHIVE)

$(SIGC_DIR)/config.status: $(SRCDIR)/$(SIGC_ARCHIVE) 
	tar xfz $(SRCDIR)/$(SIGC_ARCHIVE)
	(cd $(SIGC_DIR); ./configure $(confflags) --enable-shared)
	touch $@

$(LIBDIR)/libsigc++.a:  $(SIGC_DIR)/config.status
	$(MAKE) $(MAKEOPTS) -C $(SIGC_DIR)
	$(MAKE) $(MAKEOPTS) -C $(SIGC_DIR) install
	touch $@

### expat
update-sources::
	echo --- Getting EXPAT ...
	$(WGET) -P src $(EXPAT_URL)/$(EXPAT_ARCHIVE)

$(EXPAT_DIR)/config.status: $(SRCDIR)/$(EXPAT_ARCHIVE) 
	tar xfz $(SRCDIR)/$(EXPAT_ARCHIVE)
	(cd $(EXPAT_DIR); ./configure $(confflags))
	touch $@

$(INCLUDEDIR)/expat.h:
	install -m 644 $(EXPAT_DIR)/lib/expat.h $(INCLUDEDIR)/
	touch $@

$(LIBDIR)/libexpat.a:  $(EXPAT_DIR)/config.status $(INCLUDEDIR)/expat.h
	$(MAKE) $(MAKEOPTS) -C $(EXPAT_DIR)
	$(MAKE) $(MAKEOPTS) -C $(EXPAT_DIR) install
	touch $@

### OPENLDAP
update-sources:: 
	echo --- Getting OpenLDAP...
	$(WGET) -P $(SRCDIR) $(OPENLDAP_URL)/$(OPENLDAP_ARCHIVE)

$(OPENLDAP_DIR)/configure: $(LIBDIR)/libregex.a $(SRCDIR)/$(OPENLDAP_ARCHIVE)
	rm -f $(LIBDIR)/libldap.dll
	tar xfz $(SRCDIR)/$(OPENLDAP_ARCHIVE) -C $(BUILDROOT)
	sed -i -e 's#windres#$(RC)#g' $(OPENLDAP_DIR)/libraries/liblutil/Makefile.in
	touch $@

$(OPENLDAP_DIR)/config.status: binaries $(OPENLDAP_DIR)/configure
	#-$(MAKE) -C $(OPENLDAP_DIR) clean
	rm -f $(LIBDIR)/libldap.dll
	$(LN) -sf $(INCLUDEDIR)/regex.h $(OPENLDAP_DIR)/include/
	cd $(OPENLDAP_DIR);./configure --with-cyrus-sasl=no --enable-bdb=no --enable-hdb=no $(confflags)
	$(MAKE) $(MAKEOPTS) -C $(OPENLDAP_DIR) depend
	touch $@

$(LIBDIR)/libldap.dll: binaries $(OPENLDAP_DIR)/config.status
	$(MAKE) $(MAKE_LIB_OPTS) -C $(OPENLDAP_DIR)/libraries/liblutil
	$(CP) -f $(OPENLDAP_DIR)/libraries/liblutil/liblutil.a $(LIBDIR)
	$(MAKE) $(MAKE_LIB_OPTS) -C $(OPENLDAP_DIR)/libraries/liblber all install 
	$(MAKE) $(MAKE_LIB_OPTS) -C $(OPENLDAP_DIR)/include install
	$(MAKE) $(MAKE_LIB_OPTS) -C $(OPENLDAP_DIR)/libraries/libldap MOD_LIBS="-llutil" all install
	touch $@

### libsasl2
update-sources::
	echo --- Getting libsasl2 ...
	$(WGET) -P $(SRCDIR) $(LIBSASL2_URL)/$(LIBSASL2_ARCHIVE)

$(LIBDIR)/libsasl2.a: $(SRCDIR)/$(LIBSASL2_ARCHIVE)
	rm -f $(LIBDIR)/libsasl.a
	rm -rf $(LIBSASL2_DIR)
	unzip -u $(SRCDIR)/$(LIBSASL2_ARCHIVE) -d $(BUILDROOT)
	cp $(LIBSASL2_DIR)/lib/libsasl.lib $(LIBDIR)/libsasl2.a

### PTLib

update-ptlib:
	echo --- Getting PTLib $(PTLIB_VER) ...
	$(WGET) -P $(SRCDIR) $(PTLIB_URL)/$(PTLIB_ARCHIVE)

$(PTLIB_DIR)/configure: binaries $(LIBDIR)/libldap.dll $(LIBDIR)/libogg.a $(LIBDIR)/libspeex.a $(SRCDIR)/$(PTLIB_ARCHIVE) $(LIBDIR)/libexpat.a
#$(PTLIB_DIR)/configure: binaries $(LIBDIR)/libldap.dll $(LIBDIR)/libogg.a $(LIBDIR)/libspeex.a $(SRCDIR)/$(PTLIB_ARCHIVE) $(LIBDIR)/libexpat.a $(EKIGA_DIR)/win32/directx
	rm -rf $(PTLIB_DIR) $(LIBDIR)/$(PTLIB_LIB) $(INCLUDEDIR)/ptclib $(INCLUDEDIR)/ptlib
	tar xfz $(SRCDIR)/$(PTLIB_ARCHIVE) -C $(BUILDROOT)
	(cd $(PTLIB_DIR)/; patch -p1 < $(WIN32_DIFF_DIR)/ptlib_vistastuck.diff )
	touch $@

$(PTLIB_DIR)/config.status: binaries $(PTLIB_DIR)/configure
	rm -f $(LIBDIR)/$(PTLIB_LIB)
	(cd $(PTLIB_DIR)/; ./configure $(confptlib) )

$(LIBDIR)/$(PTLIB_LIB): binaries $(PTLIB_DIR)/config.status
ifeq ($(DEBUG),1)
	$(MAKE) $(MAKEOPTS) DEBUG=1 debug -C $(PTLIB_DIR) 2>&1 | tee ptlib-make.log
	$(MAKE) DEBUG=1 -C $(PTLIB_DIR) install 2>&1
else
	$(MAKE) $(MAKEOPTS) -C $(PTLIB_DIR) 2>&1 | tee ptlib-make.log
	$(MAKE) -C $(PTLIB_DIR) install 2>&1
endif

### libogg
update-sources::
	echo --- Getting Ogg ...
	$(WGET) -P $(SRCDIR) $(OGG_URL)/$(OGG_ARCHIVE)

$(OGG_DIR)/config.status: binaries $(SRCDIR)/$(OGG_ARCHIVE)
	rm -f $(LIBDIR)/libogg.a
	tar xfz $(SRCDIR)/$(OGG_ARCHIVE) -C $(BUILDROOT)
	(cd $(OGG_DIR)/;./configure $(confflags) \
	)

$(LIBDIR)/libogg.a: binaries $(OGG_DIR)/config.status
	rm -f $(LIBDIR)/libogg.a
	$(MAKE) $(MAKEOPTS) -C $(OGG_DIR)
	$(MAKE) -C $(OGG_DIR) install

### theora
update-sources::
	echo --- Getting theora ---
	$(WGET) -P $(SRCDIR) $(THEORA_URL)/$(THEORA_ARCHIVE)

$(THEORA_DIR)/config.status: $(SRCDIR)/$(THEORA_ARCHIVE) $(LIBDIR)/libogg.a
	rm -rf $(THEORA_DIR)
	tar xfz $(SRCDIR)/$(THEORA_ARCHIVE) -C $(BUILDROOT)
	(cd $(THEORA_DIR)/; \
	CC=$(REALCC) LD=$(LD) AR=$(AR) RANLIB=$(RANLIB) ./configure $(conftheora) )
	touch $@

$(LIBDIR)/libtheora.a: $(THEORA_DIR)/config.status
	$(MAKE) $(MAKE_LIB_OPTS) -C $(THEORA_DIR)
	$(MAKE) -C $(THEORA_DIR) install
	sed -i -e "s#library_names=''#library_names='libtheora\.a'#g" $(LIBDIR)/libtheora.la
	touch $@

### libspeex
update-sources:: 
	echo --- Getting Vorbis ...
	$(WGET) -P $(SRCDIR) $(SPEEX_URL)/$(SPEEX_ARCHIVE)

$(SPEEX_DIR)/config.status: binaries $(SRCDIR)/$(SPEEX_ARCHIVE)
	rm -f $(LIBDIR)/libspeex.a
	tar xfz $(SRCDIR)/$(SPEEX_ARCHIVE) -C $(BUILDROOT)
	(cd $(SPEEX_DIR)/;LDFLAGS="$$LDFLAGS -no-undefined" ./configure $(confflags) \
	)

$(LIBDIR)/libspeex.a: binaries $(SPEEX_DIR)/config.status
	rm -f $(LIBDIR)/libspeex.a
	$(MAKE) $(MAKE_LIB_OPTS) -C $(SPEEX_DIR)
	$(MAKE) -C $(SPEEX_DIR) install

### ffmpeg
ifeq ($(wildcard $(SRCDIR)/$(FFMPEG_ARCHIVE)),)
update-sources::
	echo --- Getting $(FFMPEG_ARCHIVE) master...
	$(GIT) clone $(FFMPEG_URL) $(SRCDIR)/$(FFMPEG_ARCHIVE)
else
update-sources::
	echo --- Updating $(FFMPEG_ARCHIVE) master...
	(cd $(SRCDIR)/$(FFMPEG_ARCHIVE); $(GIT) pull )
endif
ifeq ($(wildcard $(SRCDIR)/$(FFMPEG_ARCHIVE2)),)
update-sources::
	echo --- Getting $(FFMPEG_ARCHIVE2) master...
	(cd $(SRCDIR)/$(FFMPEG_ARCHIVE); $(GIT) clone $(FFMPEG_URL2) )
else
update-sources::
	echo --- Updating $(FFMPEG_ARCHIVE2) master...
	(cd $(SRCDIR)/$(FFMPEG_ARCHIVE2); $(GIT) pull )
endif

$(FFMPEG_DIR)/config.status: $(SRCDIR)/$(FFMPEG_ARCHIVE)
	rm -rf $(FFMPEG_DIR)
	$(CP) -r $(SRCDIR)/$(FFMPEG_ARCHIVE) $(FFMPEG_DIR)
	(cd $(FFMPEG_DIR)/; git $(GIT_FFMPEG_REV) )
	(cd $(FFMPEG_DIR2)/; git $(GIT_FFMPEG_REV2) )
	(cd $(FFMPEG_DIR)/; \
	./configure $(confffmpeg) \
	)
	touch $@

$(BINDIR)/avcodec.dll: $(FFMPEG_DIR)/config.status
	$(MAKE) $(MAKE_LIB_OPTS) -C $(FFMPEG_DIR)/libavutil
	$(MAKE) $(MAKE_LIB_OPTS) -C $(FFMPEG_DIR)/libavcodec
	$(MAKE) $(MAKE_LIB_OPTS) -C $(FFMPEG_DIR)/libavformat
	$(MAKE) $(MAKE_LIB_OPTS) -C $(FFMPEG_DIR)/libavdevice
	$(MAKE) $(MAKE_LIB_OPTS) -C $(FFMPEG_DIR)
	$(MAKE) -C $(FFMPEG_DIR) install
	touch $@

### x264
ifeq ($(wildcard $(SRCDIR)/$(X264_ARCHIVE)),)
update-sources::
	echo --- Getting x264 ---
	$(GIT) clone $(X264_URL) $(SRCDIR)/$(X264_ARCHIVE)
	touch $(SRCDIR)/$(X264_ARCHIVE)
else
update-sources::
	echo --- Updating x264 ---
	(cd $(SRCDIR)/$(X264_ARCHIVE); $(GIT) pull )
	touch $(SRCDIR)/$(X264_ARCHIVE)
endif

$(X264_DIR)/config.status: $(SRCDIR)/$(X264_ARCHIVE)
	rm -rf $(X264_DIR)
	$(CP) -r $(SRCDIR)/$(X264_ARCHIVE) $(X264_DIR)
	(cd $(X264_DIR)/; git $(GIT_X264_REV) )
	(cd $(X264_DIR)/; \
	CC=$(REALCC) ./configure $(confx264); \
	sed -i -e 's#ranlib#$(RANLIB)#g' $(X264_DIR)/Makefile; \
	sed -i -e 's#strip#$(STRIP)#g' $(X264_DIR)/Makefile; \
	sed -i -e 's#ar #$(AR) #g' $(X264_DIR)/Makefile )
	touch $@

$(LIBDIR)/libx264.a: $(X264_DIR)/config.status
	$(MAKE) $(MAKE_LIB_OPTS) -C $(X264_DIR)
	$(MAKE) -C $(X264_DIR) install
	touch $@

### OPAL

update-opal:
	echo --- Getting OPAL $(OPAL_VER)...
	$(WGET) -P $(SRCDIR) $(OPAL_URL)/$(OPAL_ARCHIVE)

$(OPAL_DIR)/configure: binaries $(LIBDIR)/libogg.a $(LIBDIR)/libspeex.a $(LIBDIR)/$(PTLIB_LIB) $(SRCDIR)/$(OPAL_ARCHIVE) \
            $(BINDIR)/avcodec.dll $(LIBDIR)/libx264.a $(LIBDIR)/libtheora.a
	rm -rf $(OPAL_DIR) $(LIBDIR)/$(OPAL_LIB) $(INCLUDEDIR)/opal
	tar xfz $(SRCDIR)/$(OPAL_ARCHIVE) -C $(BUILDROOT)
	touch $@

$(OPAL_DIR)/config.status: binaries $(OPAL_DIR)/configure
	rm -f $(LIBDIR)/$(OPAL_LIB)
ifeq ($(DEBUG),1)
	(cd $(OPAL_DIR)/; ./configure $(confopal) --enable-debug )
else
	(cd $(OPAL_DIR)/; ./configure $(confopal)  )
endif

$(LIBDIR)/$(OPAL_LIB): binaries $(OPAL_DIR)/config.status
	rm -f $(LIBDIR)/$(OPAL_LIB)
	$(MAKE) $(MAKEOPTS) -C $(OPAL_DIR) 2>&1 | tee opal-make.log
	$(MAKE) -C $(OPAL_DIR) install 2>&1
	
### libgtk
update-sources::
	echo --- Getting GTK2+ ...
	$(WGET) -P $(SRCDIR) $(GTK_URL)/$(GTK_ARCHIVE)

$(LIBDIR)/pkgconfig/gtk+-2.0.pc: $(SRCDIR)/$(GTK_ARCHIVE)
	unzip -u $(SRCDIR)/$(GTK_ARCHIVE) -d $(BUILDROOT)
	sed -i -e 's#^prefix=.*$$#prefix=$(BUILDROOT)#g' $(LIBDIR)/pkgconfig/g*.pc
	touch $@

### GTK Runtime 	 
update-sources::
	echo --- Getting GTK2+ Runtime Library ... 	 
	$(WGET) -P $(SRCDIR) $(GTK_INSTALLER_URL)/$(GTK_BIN_EXE) 	 

$(LIBDIR)/gtk+-$(GTK_BIN_VER)-setup.exe: $(SRCDIR)/$(GTK_BIN_EXE)
	$(CP) $(SRCDIR)/$(GTK_BIN_EXE)  $(LIBDIR)/gtk+-$(GTK_BIN_VER)-setup.exe
	touch $@

### libglib
update-sources::
	echo --- Getting GLib ...
	$(WGET) -P $(SRCDIR) $(GLIB_URL)/$(GLIB_ARCHIVE)

$(LIBDIR)/pkgconfig/glib-2.0.pc: $(SRCDIR)/$(GLIB_ARCHIVE)
	unzip -u $(SRCDIR)/$(GLIB_ARCHIVE) -d $(BUILDROOT)
	sed -i -e 's#^prefix=.*$$#prefix=$(BUILDROOT)#g' $(LIBDIR)/pkgconfig/g*.pc $(BINDIR)/glib-gettextize
	chmod +x $(BINDIR)/glib-gettextize
	touch $@

### atk
update-sources:: 
	echo --- Getting ATK ...
	$(WGET) -P  $(SRCDIR) $(ATK_URL)/$(ATK_ARCHIVE)

$(LIBDIR)/pkgconfig/atk-2.0.pc: $(SRCDIR)/$(ATK_ARCHIVE)
	unzip -u $(SRCDIR)/$(ATK_ARCHIVE) -d $(BUILDROOT)
	sed -i -e 's#^prefix=.*$$#prefix=$(BUILDROOT)#g' $(LIBDIR)/pkgconfig/atk*.pc
	touch $@

### libpng
update-sources::
	echo --- Getting PNG ...
	$(WGET) -P $(SRCDIR) $(GNUWIN32_URL)/libpng-$(LIBPNG_VER)-bin.zip
	$(WGET) -P $(SRCDIR) $(GNUWIN32_URL)/libpng-$(LIBPNG_VER)-dep.zip
	$(WGET) -P $(SRCDIR) $(GNUWIN32_URL)/libpng-$(LIBPNG_VER)-lib.zip

$(LIBDIR)/libpng.a: $(SRCDIR)/libpng-$(LIBPNG_VER)-bin.zip $(SRCDIR)/libpng-$(LIBPNG_VER)-dep.zip $(SRCDIR)/libpng-$(LIBPNG_VER)-lib.zip
	unzip -u $(SRCDIR)/libpng-$(LIBPNG_VER)-bin.zip -d $(BUILDROOT)
	unzip -u $(SRCDIR)/libpng-$(LIBPNG_VER)-dep.zip -d $(BUILDROOT)
	unzip -u $(SRCDIR)/libpng-$(LIBPNG_VER)-lib.zip -d $(BUILDROOT)
	sed -i -e 's#^prefix=.*$$#prefix=$(BUILDROOT)#g' lib/pkgconfig/libpng*.pc
	$(LN) -s -f libpng.pc lib/pkgconfig/libpng12.pc
	touch $@

### libintl
update-sources::
	echo --- Getting Gettext ...
	$(WGET) -P $(SRCDIR) $(GETTEXT_URL)/$(GETTEXT_ARCHIVE)

$(LIBDIR)/libintl.a: $(SRCDIR)/$(GETTEXT_ARCHIVE)
	unzip -u $(SRCDIR)/$(GETTEXT_ARCHIVE) -d $(BUILDROOT)
	touch $@

### libiconv
##update-sources:: 
##	echo --- Getting Iconv ...
##	$(WGET) -P $(SRCDIR) $(GIMP_URL)/$(ICONV_ARCHIVE)

$(LIBDIR)/libiconv.a: $(SRCDIR)/$(ICONV_ARCHIVE)
	unzip -u $(SRCDIR)/$(ICONV_ARCHIVE) -d $(BUILDROOT)
	$(RM) -f README.libiconv
	touch $@

### pango
update-sources:: 
	echo --- Getting Pango ...
	$(WGET) -P $(SRCDIR) $(PANGO_URL)/$(PANGO_ARCHIVE)

$(LIBDIR)/pkgconfig/pango32.pc: $(SRCDIR)/$(PANGO_ARCHIVE)
	unzip -u $(SRCDIR)/$(PANGO_ARCHIVE) -d $(BUILDROOT)
	sed -i -e 's#^prefix=.*$$#prefix=$(BUILDROOT)#g' $(LIBDIR)/pkgconfig/pango*.pc
	touch $@

### cairo
update-sources::
	echo --- Getting Cairo ...
	$(WGET) -P $(SRCDIR) $(CAIRO_URL)/$(CAIRO_ARCHIVE)

$(LIBDIR)/pkgconfig/cairo.pc: $(SRCDIR)/$(CAIRO_ARCHIVE)
	unzip -u $(SRCDIR)/$(CAIRO_ARCHIVE) -d $(BUILDROOT)
	sed -i -e 's#^prefix=.*$$#prefix=$(BUILDROOT)#g' $(LIBDIR)/pkgconfig/cairo*.pc
	touch $@

### libxml2
update-sources::
	echo --- Getting libXML2 ...
	$(WGET) -P $(SRCDIR) $(XML2_URL)/$(XML2_ARCHIVE)

$(XML2_DIR)/config.status: binaries $(SRCDIR)/$(XML2_ARCHIVE)
	rm -f $(LIBDIR)/libxml2.a
	tar xfz $(SRCDIR)/$(XML2_ARCHIVE) -C $(BUILDROOT)
	(cd $(XML2_DIR)/;./configure $(confflags) --without-python \
	)

$(LIBDIR)/libxml2.a: binaries $(XML2_DIR)/config.status
	rm -f $(LIBDIR)/libxml2.a
	$(MAKE) $(MAKEOPTS) -C $(XML2_DIR)
	$(MAKE) $(MAKEOPTS) -C $(XML2_DIR) install

### GnomeMeeting / Ekiga

update-ekiga:
	echo --- Downloading Ekiga ...
	$(WGET) -P $(SRCDIR) $(EKIGA_URL)/$(EKIGA_ARCHIVE)

$(EKIGA_DIR)/configure $(EKIGA_DIR)/win32/directx: binaries $(SRCDIR)/$(EKIGA_ARCHIVE)
	rm -rf $(EKIGA_DIR)
	tar xfz $(SRCDIR)/$(EKIGA_ARCHIVE) -C $(BUILDROOT)
	touch $@

$(EKIGA_DIR)/config.status: binaries $(EKIGA_DIR)/configure $(LIBDIR)/$(PTLIB_LIB) $(LIBDIR)/$(OPAL_LIB) \
	$(LIBDIR)/pkgconfig/gtk+-2.0.pc $(LIBDIR)/pkgconfig/atk-2.0.pc $(LIBDIR)/pkgconfig/glib-2.0.pc \
	$(LIBDIR)/libpng.a $(LIBDIR)/pkgconfig/pango32.pc $(LIBDIR)/pkgconfig/cairo.pc $(LIBDIR)/libxml2.a \
	$(LIBDIR)/libintl.a $(LIBDIR)/libiconv.a $(LIBDIR)/libsigc++.a $(LIBDIR)/libsasl2.a
	rm -f $(EKIGA_DIR)/src/.libs/ekiga.exe
ifeq ($(DEBUG),1)
	(cd $(EKIGA_DIR)/; ./configure $(confekiga) --enable-opal-debug )
else
	(cd $(EKIGA_DIR)/; ./configure $(confekiga) )
endif

$(EKIGA_DIR)/src/.libs/ekiga.exe: binaries $(EKIGA_DIR)/config.status
	$(MAKE) $(MAKEOPTS) -C $(EKIGA_DIR) 2>&1 | tee ekiga-make.log
	$(MAKE) $(MAKEOPTS) -C $(EKIGA_DIR)/help

$(TARGETDIR)/zips: binaries $(EKIGA_DIR)/src/.libs/ekiga.exe
	-$(RM) -rf $(TARGETDIR)
	
	mkdir $(TARGETDIR)
	make -C $(EKIGA_DIR) install
	rm -f $(EKIGA_PREFIX)/*.a $(EKIGA_PREFIX)/*.la
	mkdir -p $(EKIGA_PREFIX)/plugins
	for lib in $(PTLIB_LIB) $(OPAL_LIB); do \
	        install -m 755 $(LIBDIR)/$$lib $(EKIGA_PREFIX) ;\
	done
	for plugin in $(LIBDIR)/opal*/codecs/audio/*; do \
	        install -m 755 $$plugin $(EKIGA_PREFIX)/plugins ;\
	done
	for plugin in $(LIBDIR)/opal*/codecs/video/*; do \
	        install -m 755 $$plugin $(EKIGA_PREFIX)/plugins ;\
	done
	for lib in libexpat-1.dll liblber.dll libldap.dll libxml2-2.dll libspeex-1.dll libspeexdsp-1.dll \
	   libtheora-0.dll avcodec-52.dll avutil-50.dll libogg-0.dll libsigc-2.0-0.dll; do \
	        install -m 755 $(BINDIR)/$$lib $(EKIGA_PREFIX) ;\
	done
ifeq ($(DEBUG),0) 	 
	$(STRIP) $(EKIGA_PREFIX)/*.dll
	$(STRIP) $(EKIGA_PREFIX)/*.exe
	$(STRIP) $(EKIGA_PREFIX)/plugins/*.dll
	$(STRIP) $(EKIGA_PREFIX)/plugins/*.exe
endif
	# We can not strip MS compiled dlls
	install -m 755  $(LIBSASL2_DIR)/bin/libsasl.dll $(EKIGA_PREFIX)
	for lc in C $(DOC_LINGUAS); do \
		mkdir -p $(EKIGA_PREFIX)/help/$$lc; \
		if test -f $(EKIGA_DIR)/help/$$lc/ekiga.xml; then \
			xmlto -o $(EKIGA_PREFIX)/help/$$lc/ --skip-validation html $(EKIGA_DIR)/help/$$lc/ekiga.xml; \
		fi ;\
		install -m 644 $(EKIGA_DIR)/help/$$lc/ekiga.xml $(EKIGA_PREFIX)/help/$$lc/;\
		if test -d $(EKIGA_DIR)/help/$$lc/figures; then \
			mkdir -p $(EKIGA_PREFIX)/help/$$lc/figures; \
			install -m 644 $(EKIGA_DIR)/help/$$lc/figures/*.png $(EKIGA_PREFIX)/help/$$lc/figures; \
		fi \
	done
	(cd $(TARGETDIR)/;zip -9r ekiga-$(EKIGA_VER).zip Ekiga )
	zip -9r $(TARGETDIR)/ekiga_build-$(EKIGA_VER).zip Makefile $(REL_DIFF_DIR) INSTALL
	tar cfvz $(TARGETDIR)/ekiga_build-$(EKIGA_VER).tgz Makefile $(REL_DIFF_DIR) INSTALL
	touch $@

update-sources:: update-ptlib update-opal update-ekiga

#### README about NSIS installer ####
#
# NSIS package shipped with linux distributions does not includes some of the plugins needed.
# - System.dll : You need to get it from the windows zip archive (http://sourceforge.net/projects/nsis) and extract 
#               /Plugins/System.dll TO /usr/share/nsis/Plugins/
#		/Contrib/Modern UI/System.nsh TO /usr/share/nsis/Contrib/System/
# - Process.dll : Is a plugin that can be found here http://nsis.sourceforge.net/Processes_plug-in
#   		extract /bin/Processes.dll TO /usr/share/nsis/Plugins/
#   		
###########################

update-sources::
	echo --- Getting NSIS Installer ...
	$(WGET) -P $(SRCDIR) $(NSIS_URL)/nsis-$(NSIS_VER).zip

$(NSISPLUGIN_DIR)/SystemLocal.dll: $(SRCDIR)/nsis-$(NSIS_VER).zip
	mkdir -p $(NSISPLUGIN_DIR)
	unzip -u -j $(SRCDIR)/nsis-$(NSIS_VER).zip nsis-$(NSIS_VER)/Plugins/System.dll -d $(NSISPLUGIN_DIR)
	$(MV) $(NSISPLUGIN_DIR)/System.dll $(NSISPLUGIN_DIR)/SystemLocal.dll
	touch $@

update-sources::
	echo --- Getting NSIS Processes Plugin ...
	$(WGET) -P $(SRCDIR) $(NSISPROCESSES_URL)/Processes.zip

$(NSISPLUGIN_DIR)/Processes.dll: $(SRCDIR)/Processes.zip
	mkdir -p $(NSISPLUGIN_DIR)
	unzip -u -j $(SRCDIR)/Processes.zip setup-processes/bin/Processes.dll -d $(NSISPLUGIN_DIR)
	touch $@

$(NSISINTALLER_DIR)/ekiga.nsi: $(EKIGA_DIR)/configure
	rm -rf $(NSISINTALLER_DIR)
	cp -r $(EKIGA_DIR)/win32/nsisinstaller $(BUILDROOT)
	touch $@

$(TARGETDIR)/$(EKIGA_INSTALLER): $(TARGETDIR)/zips $(LIBDIR)/gtk+-$(GTK_BIN_VER)-setup.exe $(NSISPLUGIN_DIR)/SystemLocal.dll \
                                 $(NSISPLUGIN_DIR)/Processes.dll $(NSISINTALLER_DIR)/ekiga.nsi
	(makensis -DEKIGA_VERSION=$(EKIGA_VERSION) -DEKIGA_DIR=$(EKIGA_DIR) -DBUILDROOT=$(BUILDROOT) \
	 -DINSTALLER_DIR=$(EKIGA_INSTALLER_DIR) -DLIB_DIR=$(LIBDIR) -DTARGET_DIR=$(TARGETDIR) \
	 -DCROSS_COMPILING=true -DWITH_GTK=true -DGTK_VERSION=$(GTK_BIN_VER) \
	 -DNSISSYSTEMDIR=$(NSISSYTEM_DIR) -DNSISPLUGINDIR=$(NSISPLUGIN_DIR) \
	 $(EKIGA_INSTALLER_DIR)/ekiga.nsi )
	touch $@

clean:
	-$(RM) -rf $(TARGETDIR)

distclean:
	-$(RM) -rf $(OPENLDAP_DIR)
	-$(RM) -rf $(LIBSASL2_DIR)
	-$(RM) -rf $(BUILDROOT)/share/
	-$(RM) -rf $(BINDIR)
	-$(RM) -rf $(BUILDROOT)/contrib
	-$(RM) -rf $(BUILDROOT)/etc
	-$(RM) -rf $(INCLUDEDIR)
	-$(RM) -rf $(LIBDIR)
	-$(RM) -rf $(OGG_DIR)
	-$(RM) -rf $(XML2_DIR)
	-$(RM) -rf $(BUILDROOT)/man
	-$(RM) -rf $(BUILDROOT)/manifest
	-$(RM) -rf $(OPAL_DIR)
	-$(RM) -rf $(EKIGA_DIR)
	-$(RM) -rf $(PTLIB_DIR)
	-$(RM) -rf $(REGEX_DIR)
	-$(RM) -rf $(SIGC_DIR)
	-$(RM) -rf $(SPEEX_DIR)
	-$(RM) -rf $(EXPAT_DIR)
	-$(RM) -rf $(FFMPEG_DIR)
	-$(RM) -rf $(X264_DIR)
	-$(RM) -rf $(THEORA_DIR)
	-$(RM) -rf $(NSISINTALLER_DIR)
	-$(RM) -rf $(NSISPLUGIN_DIR)
	-$(RM) -rf make
	-$(RM) -f binaries
	-$(RM) -f *.log
#	-$(RM) -rf $(SRCDIR)/*

.PHONY: clean distclean update update-sources update-ekiga update-opal update-ptlib


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]