1CURRENT=..
2SEP=echo "\033[41;1m   $@   \033[0m"
3export SRCBASE := $(shell pwd)/$(CURRENT)
4export BUILD := $(shell (gcc -dumpmachine))
5export HOSTCC := gcc
6export PLATFORM := mipsel-uclibc
7CROSS_COMPILE := mipsel-linux-
8export CROSS_COMPILER := $(CROSS_COMPILE)
9export CONFIGURE := ./configure --host=mipsel-linux --build=$(BUILD)
10export TOOLCHAIN := $(shell cd $(dir $(shell which $(CROSS_COMPILE)gcc))/.. && pwd)
11export IPKG_TOOLS := $(shell cd $(dir $(shell which $(CROSS_COMPILE)gcc))../../../ipkg-utils-1.7 && pwd)
12export LD_DIR := $(shell cd $(dir $(shell which $(CROSS_COMPILE)gcc))../../../../staging && pwd)
13
14
15export CC := $(CROSS_COMPILE)gcc
16export AR := $(CROSS_COMPILE)ar
17export AS := $(CROSS_COMPILE)as
18export LD := $(CROSS_COMPILE)ld
19export NM := $(CROSS_COMPILE)nm
20export RANLIB := $(CROSS_COMPILE)ranlib
21export STRIP := $(CROSS_COMPILE)strip
22export SIZE := $(CROSS_COMPILE)size
23
24obj-y += zlib
25obj-y += libxml2
26obj-y += openssl
27obj-y += neon
28obj-y += webdav
29obj-y += WebDAV-ipk
30
31all: $(obj-y)
32	echo $(LD_DIR)
33	echo $(TOOLCHAIN)
34	echo $(IPKG_TOOLS)
35
36clean:
37	@$(MAKE) -C $(CURRENT)/neon clean
38	@$(MAKE) -C $(CURRENT)/webdav_client clean
39	@$(MAKE) -C $(CURRENT)/libxml2 clean
40	@$(MAKE) -C $(CURRENT)/openssl clean
41	@$(MAKE) -C $(CURRENT)/zlib clean
42	@rm -rf WebdavClient-ipk/opt/tmp/lib/*
43	@rm -rf WebdavClient-ipk/opt/tmp/bin/*
44	rm -rf webdavclient_*.ipk
45
46neon/stamp-h2:
47	@$(SEP)
48#	cd neon
49#	touch $@
50neon: neon/stamp-h2
51	cd $(CURRENT)/neon && \
52	AR=$(TOOLCHAIN)/bin/mipsel-linux-ar AS=$(TOOLCHAIN)/bin/mipsel-linux-as LD=$(TOOLCHAIN)/bin/mipsel-linux-ld NM=$(TOOLCHAIN)/bin/mipsel-linux-nm CC=$(TOOLCHAIN)/bin/mipsel-linux-gcc CPP="$(TOOLCHAIN)/bin/mipsel-linux-gcc -E" GCC=$(TOOLCHAIN)/bin/mipsel-linux-gcc CXX=$(TOOLCHAIN)/bin/mipsel-linux-g++ RANLIB=$(TOOLCHAIN)/bin/mipsel-linux-ranlib STRIP=$(TOOLCHAIN)/bin/mipsel-linux-strip \
53	./configure --build=i386-pc-linux-gnu --host=mipsel-linux --target=mipsel-linux --prefix=/opt --disable-static --enable-shared --disable-nls --with-zlib --with-libxml2 --with-ssl=openssl --with-libs=$(SRCBASE)/openssl:$(SRCBASE)/libxml2 CFLAGS='-I$(SRCBASE)/zlib -I$(SRCBASE)/libxml2/include -I$(SRCBASE)/openssl/include' LDFLAGS='-L$(SRCBASE)/libxml2/.libs -L$(SRCBASE)/openssl -L$(SRCBASE)/zlib' LIBS='-lxml2 -lcrypto -lssl -lz' XML2_CONFIG='$(SRCBASE)/libxml2/xml2-config'
54	cp -f $(CURRENT)/neon/config.h $(CURRENT)/neon/src/config.h
55	@$(MAKE) -C $(CURRENT)/neon
56	cp -rf $(CURRENT)/neon/src/.libs/libneon.so.27.2.6 WebdavClient-ipk/opt/tmp/lib/
57
58webdav/stamp-h2:
59	@$(SEP)
60#	cd webdav
61#	touch $@
62webdav: webdav/stamp-h2
63	@$(MAKE) -C $(CURRENT)/webdav_client -f Makefile.ipk
64	cp -rf $(CURRENT)/webdav_client/webdav_client WebdavClient-ipk/opt/tmp/bin/
65
66libxml2/stamp-h2:
67	@$(SEP)
68#	cd libxml2
69#	touch $@
70libxml2: libxml2/stamp-h2
71	cd $(CURRENT)/libxml2 && \
72	AR=$(TOOLCHAIN)/bin/mipsel-linux-uclibc-ar AS=$(TOOLCHAIN)/bin/mipsel-linux-uclibc-as LD=$(TOOLCHAIN)/bin/mipsel-linux-uclibc-ld NM=$(TOOLCHAIN)/bin/mipsel-linux-uclibc-nm CC=$(TOOLCHAIN)/bin/mipsel-linux-uclibc-gcc CPP="$(TOOLCHAIN)/bin/mipsel-linux-uclibc-gcc -E" GCC=$(TOOLCHAIN)/bin/mipsel-linux-uclibc-gcc CXX=$(TOOLCHAIN)/bin/mipsel-linux-uclibc-g++ RANLIB=$(TOOLCHAIN)/bin/mipsel-linux-uclibc-ranlib STRIP=$(TOOLCHAIN)/bin/mipsel-linux-uclibc-strip CPPFLAGS="-O2   -pipe  -I$(LD_DIR)/opt/include " LDFLAGS=" -L$(LD_DIR)/opt/lib -Wl,-rpath,/opt/lib -Wl,-rpath-link,$(LD_DIR)/opt/lib " \
73	./configure --build=i386-pc-linux-gnu --host=mipsel-linux --target=mipsel-linux --prefix=/opt --disable-nls --disable-static --enable-shared --without-python
74	@$(MAKE) -C $(CURRENT)/libxml2 all
75
76openssl/stamp-h2:
77	@$(SEP)
78#	cd openssl
79#	touch $@
80openssl: openssl/stamp-h2
81	cd $(CURRENT)/openssl && \
82	AR=$(TOOLCHAIN)/bin/mipsel-linux-uclibc-ar AS=$(TOOLCHAIN)/bin/mipsel-linux-uclibc-as LD=$(TOOLCHAIN)/bin/mipsel-linux-uclibc-ld NM=$(TOOLCHAIN)/bin/mipsel-linux-uclibc-nm CC=$(TOOLCHAIN)/bin/mipsel-linux-uclibc-gcc CPP="$(LD_DIR)/bin/mipsel-linux-uclibc-gcc -E" GCC=$(TOOLCHAIN)/bin/mipsel-linux-uclibc-gcc CXX=$(TOOLCHAIN)/bin/mipsel-linux-uclibc-g++ RANLIB=$(TOOLCHAIN)/bin/mipsel-linux-uclibc-ranlib STRIP=$(TOOLCHAIN)/bin/mipsel-linux-uclibc-strip \
83		./Configure \
84			shared no-zlib \
85			-O2   -pipe  -I$(LD_DIR)/opt/include \
86			--openssldir=/opt/share/openssl \
87			--prefix=$(LD_DIR)/opt \
88			linux-mipsel 
89	@$(MAKE) -C $(CURRENT)/openssl \
90		AR=$(TOOLCHAIN)/bin/mipsel-linux-uclibc-ar AS=$(TOOLCHAIN)/bin/mipsel-linux-uclibc-as LD=$(TOOLCHAIN)/bin/mipsel-linux-uclibc-ld NM=$(TOOLCHAIN)/bin/mipsel-linux-uclibc-nm CC=$(TOOLCHAIN)/bin/mipsel-linux-uclibc-gcc CPP="$(TOOLCHAIN)/bin/mipsel-linux-uclibc-gcc -E" GCC=$(TOOLCHAIN)/bin/mipsel-linux-uclibc-gcc CXX=$(TOOLCHAIN)/bin/mipsel-linux-uclibc-g++ RANLIB=$(TOOLCHAIN)/bin/mipsel-linux-uclibc-ranlib STRIP=$(TOOLCHAIN)/bin/mipsel-linux-uclibc-strip \
91		AR="$(TOOLCHAIN)/bin/mipsel-linux-uclibc-ar r" \
92		\
93		\
94		MANDIR=/opt/man \
95		EX_LIBS=" -L$(LD_DIR)/opt/lib -Wl,-rpath,/opt/lib -Wl,-rpath-link,$(LD_DIR)/opt/lib -ldl" \
96		DIRS="crypto ssl apps test"
97#	 cd openssl && \
98#	$(MAKE) install
99	cp -rf $(CURRENT)/openssl/libcrypto.so.1.0.0 $(LD_DIR)/opt/lib/libcrypto.so.1.0.0
100	cp -rf $(CURRENT)/openssl/libcrypto.so $(LD_DIR)/opt/lib/libcrypto.so
101	cp -rf $(CURRENT)/openssl/libssl.so.1.0.0 $(LD_DIR)/opt/lib/libssl.so.1.0.0
102	cp -rf $(CURRENT)/openssl/libssl.so $(LD_DIR)/opt/lib/libssl.so
103
104zlib/stamp-h2:
105	@$(SEP)
106#	cd zlib
107#	touch $@
108zlib: zlib/stamp-h2
109	cd $(CURRENT)/zlib && \
110	AR=$(TOOLCHAIN)/bin/mipsel-linux-uclibc-ar AS=$(TOOLCHAIN)/bin/mipsel-linux-uclibc-as LD=$(TOOLCHAIN)/bin/mipsel-linux-uclibc-ld NM=$(TOOLCHAIN)/bin/mipsel-linux-uclibc-nm CC=$(TOOLCHAIN)/bin/mipsel-linux-uclibc-gcc CPP="$(TOOLCHAIN)/bin/mipsel-linux-uclibc-gcc -E" GCC=$(TOOLCHAIN)/bin/mipsel-linux-uclibc-gcc CXX=$(TOOLCHAIN)/bin/mipsel-linux-uclibc-g++ RANLIB=$(TOOLCHAIN)/bin/mipsel-linux-uclibc-ranlib STRIP=$(TOOLCHAIN)/bin/mipsel-linux-uclibc-strip \
111	./configure --shared
112	@$(MAKE) -C $(CURRENT)/zlib all
113
114WebDAV-ipk:
115	$(STRIP) WebdavClient-ipk/opt/tmp/bin/*
116	$(STRIP) WebdavClient-ipk/opt/tmp/lib/*
117	@$(IPKG_TOOLS)/ipkg-build WebdavClient-ipk ./
118