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