Sunday 14 May 2017

Linux - QT5 - Menambahkan library openssl dan libcrypto pada aplikasi android 7

بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيم


Karena library openssl dan libcrypto tidak ada pada bawaan instalasi QT5 maka kita perlu compile dulu. Caranya:
1. Download dulu source code nya dari https://www.openssl.org/source/. Yang sudah saya coba versi 1.0.2.

2. Copy script ini dan jadikan 1 file bernama "install.sh". Kalo perlu penyesuaian path bisa disesuaikan sendiri. Di system saya source filenya ada di "~/Downloads" sedangkan NDK folder nya di "/opt/android-ndk".

#!/bin/sh
tar xzvf ~/Downloads/openssl-1.0.2g.tar.gz
cd openssl-1.0.2g
# path to android ndk folder
export NDK=~/qt/android-ndk-r13b
$NDK/build/tools/make-standalone-toolchain.sh --platform=android-9 --toolchain=arm-linux-androideabi-4.6 --install-dir=`pwd`/android-toolchain-arm
export TOOLCHAIN_PATH=`pwd`/android-toolchain-arm/bin
export TOOL=arm-linux-androideabi
export NDK_TOOLCHAIN_BASENAME=${TOOLCHAIN_PATH}/${TOOL}
export CC=$NDK_TOOLCHAIN_BASENAME-gcc
export CXX=$NDK_TOOLCHAIN_BASENAME-g++
export LINK=${CXX}
export LD=$NDK_TOOLCHAIN_BASENAME-ld
export AR=$NDK_TOOLCHAIN_BASENAME-ar
export RANLIB=$NDK_TOOLCHAIN_BASENAME-ranlib
export STRIP=$NDK_TOOLCHAIN_BASENAME-strip
export ARCH_FLAGS="-mthumb"
export ARCH_LINK=
export CPPFLAGS=" ${ARCH_FLAGS} -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64 "
export CXXFLAGS=" ${ARCH_FLAGS} -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64 -frtti -fexceptions "
export CFLAGS=" ${ARCH_FLAGS} -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64 "
export LDFLAGS=" ${ARCH_LINK} "
# the target of libraries files is armv7
cd ~/Downloads/openssl-1.0.2g && ./Configure android-armv7 share

3. Eksekusi dengan "./install".

4. Edit Makefile yang ada di folder hasil extract tadi "~/Downloads/openssl-1.0.2g" pake text editor kesayangan anda.
Cari bagian berikut,
LIBNAME=$$i LIBVERSION=$(SHLIB_MAJOR).$(SHLIB_MINOR) \
LIBCOMPATVERSIONS=";$(SHLIB_VERSION_HISTORY)" \

Dan ganti dengan,
LIBNAME=$$i \

Kalo sudah disave dan close

5. Kembali ke terminal lalu di compile dengan perintah
make clean && PATH=$TOOLCHAIN_PATH:$PATH make

Ok setelah compilenya selesai, kopi librarynya ke folder project nya. File nya ada di root folder hasil extract tadi. Kemudian tambahkan path ke arah librarynya di file ".pro". Saya menambahkan subfolder untuk librarynya di "android/libs/openssl/armeabi-v7a/" maka tambanhannya adalah

android{
  ANDROID_EXTRA_LIBS += $$PWD/android/libs/openssl/armeabi-v7a/libcrypto.so
  ANDROID_EXTRA_LIBS += $$PWD/android/libs/openssl/armeabi-v7a/libssl.so

}

Dan sekian, dan semoga berhasil.

Friday 24 April 2015

Tutorial Instalasi NGSPICE-26 di GNU/LINUX

Bagi teman-teman yg ingin install ngspice 26 di Linux. Berikut ini tutorialnya.

A. Ubuntu
Versi ubuntu yg saya pakai adalah Ubuntu 15.04 Vivid Vervet.
copas aja perintah berikut ini. Link Download Ngspice 26
1. Extract file source tarbal ngspice-26.tar.gz yang udah di download. Lalu buka terminal.
2. Pindah directory kerja ke hasil extract tadi.
3. Update repository :
 sudo apt-get update 
4. Install package gcc compiler dkk :
 sudo apt-get install build-essential linux-headers-`uname -r`
5.Install beberapa dependency ngspice :
 sudo apt-get install libtool automake autoconf flex bison texinfo libx11-dev libxaw7-dev 
6. Install gnu readlines :
 sudo apt-get install libreadline-gplv2-dev lib64readline-gplv2-dev 
7. Compile sourcenya :
 mkdir release && cd release && ../configure --with-x --enable-xspice --disable-debug --enable-cider --with-readline=yes --enable-openmp && make 2>&1 | tee make.log 
8. Install hasil compile :
 sudo make install 

B. Arch
1. Buka terminal dan update pacman.
 sudo pacman -Sy 
2. Install ngspice.
 sudo pacman -S ngspice

Karena Arch Linux adalah distro yang rolling release maka hampir keseluruhan aplikasi yang ada di repository adalah versi terbaru.

Semoga Bermanfaat...