#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

# Comment in if using Cygwin:
#SHELL:=/bin/bash

TARGET:=target
SRC:=src/main/java
SRC_NATIVE:=src/main/native

ifndef VERSION
$(error Set VERSION environment variable)
endif

ifndef JAVA_HOME
$(error Set JAVA_HOME environment variable)
endif

JAVA  := "$(JAVA_HOME)/bin/java"
JAVAC := "$(JAVA_HOME)/bin/javac"
JAVAH := "$(JAVA_HOME)/bin/javah"

OSINFO_CLASS := org.apache.commons.crypto.OsInfo
OSINFO_PROG := $(TARGET)/classes/org/apache/commons/crypto/OsInfo.class

OS_NAME := $(shell $(JAVA) -cp $(TARGET)/classes $(OSINFO_CLASS) --os)
OS_ARCH := $(shell $(JAVA) -cp $(TARGET)/classes $(OSINFO_CLASS) --arch)
LIB_FOLDER := $(shell $(JAVA) -cp $(TARGET)/classes $(OSINFO_CLASS))
IBM_JDK_LIB := lib/inc_ibm

commons-crypto := commons-crypto-$(VERSION)


jni_md := $(shell find -L "$(JAVA_HOME)" -name jni_md.h | head -1)
ifneq ($(jni_md),)
jni_include := $(shell dirname "$(jni_md)")
endif


# os=Default is meant to be generic unix/linux

known_os_archs := Linux-x86 Linux-x86_64 Linux-arm Linux-armhf Linux-ppc Linux-ppc64 Mac-x86 Mac-x86_64 FreeBSD-x86_64 Windows-x86 Windows-x86_64 SunOS-x86 SunOS-sparc SunOS-x86_64 AIX-ppc64
os_arch := $(OS_NAME)-$(OS_ARCH)
IBM_JDK_7 := $(findstring IBM, $(shell $(JAVA) -version 2>&1 | grep IBM | grep "JRE 1.7"))

ifeq (,$(findstring $(strip $(os_arch)),$(known_os_archs)))
  os_arch := Default
endif

os_folder := $(shell echo $(OS_NAME) | tr A-Z a-z)

ifneq ($(IBM_JDK_7),)
  $(shell mkdir -p $(IBM_JDK_LIB))
  $(shell cp $(JAVA_HOME)/include/jniport.h $(IBM_JDK_LIB))
  $(shell sed -i "s|#define JNIEXPORT *$$|#define JNIEXPORT  __attribute__((__visibility__(\"default\")))|" $(IBM_JDK_LIB)/jniport.h)
  $(shell sed -i "s|typedef long long jlong;.*|/*typedef long long jlong;*/|" $(IBM_JDK_LIB)/jniport.h)
  $(shell cp $(JAVA_HOME)/include/$(os_folder)/jni_md.h $(IBM_JDK_LIB))
  $(shell sed -i "s|#define JNIEXPORT|#define JNIEXPORT  __attribute__((__visibility__(\"default\")))|" $(IBM_JDK_LIB)/jni_md.h)
  $(shell sed -i "s|typedef long long jlong;.*|/*typedef long long jlong;*/|" $(IBM_JDK_LIB)/jni_md.h)
endif

# cross-compilation toolchain prefix (e.g. "arm-linux-gnueabi-")
CROSS_PREFIX :=

Default_CC           := $(CROSS_PREFIX)gcc
Default_CXX          := $(CROSS_PREFIX)g++
Default_STRIP        := $(CROSS_PREFIX)strip
Default_CFLAGS       := -I$(JAVA_HOME)/include -Ilib/inc_mac -O2 -fPIC -fvisibility=hidden
Default_CXXFLAGS     := -I$(JAVA_HOME)/include -Ilib/inc_mac -O2 -fPIC -fvisibility=hidden
Default_LINKFLAGS    := -shared -static
Default_LIBNAME      := libcommons-crypto.so
Default_COMMONS_CRYPTO_FLAGS :=

Linux-x86_CC        := $(CROSS_PREFIX)gcc
Linux-x86_CXX       := $(CROSS_PREFIX)g++
Linux-x86_STRIP     := $(CROSS_PREFIX)strip
ifeq ($(IBM_JDK_7),)
  Linux-x86_CXXFLAGS  := -I$(JAVA_HOME)/include -O2 -fPIC -fvisibility=hidden -m32
  Linux-x86_CFLAGS    := -I$(JAVA_HOME)/include -O2 -fPIC -fvisibility=hidden -m32
else
  Linux-x86_CXXFLAGS  := -include $(IBM_JDK_LIB)/jni_md.h -include $(IBM_JDK_LIB)/jniport.h -I$(JAVA_HOME)/include -O2 -fPIC -fvisibility=hidden -m32
  Linux-x86_CFLAGS    := -include $(IBM_JDK_LIB)/jni_md.h -include $(IBM_JDK_LIB)/jniport.h -I$(JAVA_HOME)/include -O2 -fPIC -fvisibility=hidden -m32
endif
Linux-x86_LINKFLAGS := -shared -static-libgcc -static-libstdc++
Linux-x86_LIBNAME   := libcommons-crypto.so
Linux-x86_COMMONS_CRYPTO_FLAGS:=

Linux-x86_64_CC        := $(CROSS_PREFIX)gcc
Linux-x86_64_CXX       := $(CROSS_PREFIX)g++
Linux-x86_64_STRIP     := $(CROSS_PREFIX)strip
ifeq ($(IBM_JDK_7),)
  Linux-x86_64_CXXFLAGS  := -Ilib/inc_linux -I$(JAVA_HOME)/include -Ilib/inc_mac -O2 -fPIC -fvisibility=hidden -m64
  Linux-x86_64_CFLAGS    := -Ilib/inc_linux -I$(JAVA_HOME)/include -Ilib/inc_mac -O2 -fPIC -fvisibility=hidden -m64
else
  Linux-x86_64_CXXFLAGS  := -include $(IBM_JDK_LIB)/jni_md.h -include $(IBM_JDK_LIB)/jniport.h -I$(JAVA_HOME)/include -Ilib/inc_mac -O2 -fPIC -fvisibility=hidden -m64
  Linux-x86_64_CFLAGS    := -include $(IBM_JDK_LIB)/jni_md.h -include $(IBM_JDK_LIB)/jniport.h -I$(JAVA_HOME)/include -Ilib/inc_mac -O2 -fPIC -fvisibility=hidden -m64
endif
Linux-x86_64_LINKFLAGS := -shared -static-libgcc -static-libstdc++
Linux-x86_64_LIBNAME   := libcommons-crypto.so
Linux-x86_64_COMMONS_CRYPTO_FLAGS  :=

Linux-ppc_CC          := gcc
Linux-ppc_CXX         := g++
Linux-ppc_STRIP       := strip
ifeq ($(IBM_JDK_7),)
  Linux-ppc_CXXFLAGS    := -DHAVE_CONFIG_H -Ilib/inc_linux -I$(JAVA_HOME)/include -Ilib/inc_mac -O2 -fPIC -fvisibility=hidden -m32
  Linux-ppc_CFLAGS      := -DHAVE_CONFIG_H -Ilib/inc_linux -I$(JAVA_HOME)/include -Ilib/inc_mac -O2 -fPIC -fvisibility=hidden -m32
else
  Linux-ppc_CXXFLAGS    := -DHAVE_CONFIG_H -include lib/inc_linux/jni_md.h -include $(IBM_JDK_LIB)/jniport.h -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux -O2 -fPIC -m32
  Linux-ppc_CFLAGS      := -DHAVE_CONFIG_H -include lib/inc_linux/jni_md.h -include $(IBM_JDK_LIB)/jniport.h -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux -O2 -fPIC -m32
endif
Linux-ppc_LINKFLAGS   := -shared -static-libgcc -static-libstdc++
Linux-ppc_LIBNAME     := libcommons-crypto.so
Linux-ppc_COMMONS_CRYPTO_FLAGS  :=

Linux-ppc64_CC        := gcc
Linux-ppc64_CXX       := g++
Linux-ppc64_STRIP     := strip
ifeq ($(IBM_JDK_7),)
  Linux-ppc64_CXXFLAGS  := -DHAVE_CONFIG_H -Ilib/inc_linux -I$(JAVA_HOME)/include -Ilib/inc_mac -O2 -fPIC -fvisibility=hidden -m64
  Linux-ppc64_CFLAGS    := -DHAVE_CONFIG_H -Ilib/inc_linux -I$(JAVA_HOME)/include -Ilib/inc_mac -O2 -fPIC -fvisibility=hidden -m64
else
  Linux-ppc64_CXXFLAGS  := -DHAVE_CONFIG_H -include $(IBM_JDK_LIB)/jni_md.h -include $(IBM_JDK_LIB)/jniport.h -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux -O2 -fPIC -m64
  Linux-ppc64_CFLAGS    := -DHAVE_CONFIG_H -include $(IBM_JDK_LIB)/jni_md.h -include $(IBM_JDK_LIB)/jniport.h -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux -O2 -fPIC -m64
endif
Linux-ppc64_LINKFLAGS := -shared -static-libgcc -static-libstdc++
Linux-ppc64_LIBNAME   := libcommons-crypto.so
Linux-ppc64_COMMONS_CRYPTO_FLAGS  :=

AIX-ppc64_CC        := gcc
AIX-ppc64_CXX       := g++
AIX-ppc64_STRIP     := strip -X64
AIX-ppc64_LIBNAME   := libcommons-crypto.a
ifeq ($(IBM_JDK_7),)
  AIX-ppc64_CXXFLAGS     := -DHAVE_CONFIG_H -Ilib/inc_linux -I$(JAVA_HOME)/include -Ilib/inc_mac -O2 -fPIC -fvisibility=hidden -m64
  AIX-ppc64_CFLAGS       := -DHAVE_CONFIG_H -Ilib/inc_linux -I$(JAVA_HOME)/include -Ilib/inc_mac -O2 -fPIC -fvisibility=hidden -m64
else
  AIX-ppc64_CXXFLAGS     := -DHAVE_CONFIG_H -I$(JAVA_HOME)/include/aix -Ilib/inc_ibm -I$(JAVA_HOME)/include -Ilib/inc_mac -O2 -fPIC -maix64
  AIX-ppc64_CFLAGS       := -DHAVE_CONFIG_H -I$(JAVA_HOME)/include/aix -Ilib/inc_ibm -I$(JAVA_HOME)/include -Ilib/inc_mac -O2 -fPIC -maix64
endif
AIX-ppc64_LINKFLAGS := -shared -static-libgcc -static-libstdc++ -lcrypt
AIX-ppc64_COMMONS_CRYPTO_FLAGS  :=

SunOS-x86_CC        := gcc
SunOS-x86_CXX       := g++
SunOS-x86_STRIP     := strip
SunOS-x86_CFLAGS    := -include lib/inc_linux/jni_md.h -I$(JAVA_HOME)/include -O2 -fPIC -fvisibility=hidden
SunOS-x86_CXXFLAGS  := -include lib/inc_linux/jni_md.h -I$(JAVA_HOME)/include -O2 -fPIC -fvisibility=hidden
SunOS-x86_LINKFLAGS := -shared -static-libgcc -static-libstdc++
SunOS-x86_LIBNAME   := libcommons-crypto.so
SunOS-x86_COMMONS_CRYPTO_FLAGS  :=

SunOS-sparc_CC        := gcc
SunOS-sparc_CXX       := g++
SunOS-sparc_STRIP     := strip
SunOS-sparc_CFLAGS    := -include lib/inc_linux/jni_md.h -I$(JAVA_HOME)/include -O2 -fPIC -fvisibility=hidden
SunOS-sparc_CXXFLAGS  := -include lib/inc_linux/jni_md.h -I$(JAVA_HOME)/include -O2 -fPIC -fvisibility=hidden
SunOS-sparc_LINKFLAGS := -shared -static-libgcc -static-libstdc++
SunOS-sparc_LIBNAME   := libcommons-crypto.so
SunOS-sparc_COMMONS_CRYPTO_FLAGS  :=

SunOS-x86_64_CC        := gcc
SunOS-x86_64_CXX       := g++
SunOS-x86_64_STRIP     := strip
SunOS-x86_64_CFLAGS    := -include lib/inc_linux/jni_md.h -I$(JAVA_HOME)/include -O2 -fPIC -fvisibility=hidden -m64
SunOS-x86_64_CXXFLAGS  := -include lib/inc_linux/jni_md.h -I$(JAVA_HOME)/include -O2 -fPIC -fvisibility=hidden -m64
SunOS-x86_64_LINKFLAGS := -shared -static-libgcc -static-libstdc++
SunOS-x86_64_LIBNAME   := libcommons-crypto.so
SunOS-x86_64_COMMONS_CRYPTO_FLAGS  :=

# '-include lib/inc_linux/jni_md.h' is used to force the use of our version,
# which defines JNIEXPORT differently; otherwise, since OpenJDK includes
# jni_md.h in same directory as jni.h, the include path is ignored when
# jni_md.h is included from jni.h

Linux-arm_CC        := $(CROSS_PREFIX)gcc
Linux-arm_CXX       := $(CROSS_PREFIX)g++
Linux-arm_STRIP     := $(CROSS_PREFIX)strip
Linux-arm_CFLAGS    := -include lib/inc_linux/jni_md.h -I$(JAVA_HOME)/include -O2 -fPIC -fvisibility=hidden -mfloat-abi=softfp
Linux-arm_CXXFLAGS  := -include lib/inc_linux/jni_md.h -I$(JAVA_HOME)/include -O2 -fPIC -fvisibility=hidden -mfloat-abi=softfp
Linux-arm_LINKFLAGS := -shared -static-libgcc
Linux-arm_LIBNAME   := libcommons-crypto.so
Linux-arm_COMMONS_CRYPTO_FLAGS:=

Linux-armhf_CC        := $(CROSS_PREFIX)gcc
Linux-armhf_CXX       := $(CROSS_PREFIX)g++
Linux-armhf_STRIP     := $(CROSS_PREFIX)strip
Linux-armhf_CFLAGS    := -include lib/inc_linux/jni_md.h -I$(JAVA_HOME)/include -O2 -fPIC -fvisibility=hidden -mfloat-abi=hard
Linux-armhf_CXXFLAGS  := -include lib/inc_linux/jni_md.h -I$(JAVA_HOME)/include -O2 -fPIC -fvisibility=hidden -mfloat-abi=hard
Linux-armhf_LINKFLAGS := -shared -static-libgcc
Linux-armhf_LIBNAME   := libcommons-crypto.so
Linux-armhf_COMMONS_CRYPTO_FLAGS:=

Mac-x86_CC        := gcc -arch i386
Mac-x86_CXX       := g++ -arch i386
Mac-x86_STRIP     := strip -x
Mac-x86_CFLAGS    := -Ilib/inc_mac -I$(JAVA_HOME)/include -O2 -fPIC -mmacosx-version-min=10.4 -fvisibility=hidden -I/usr/local/include
Mac-x86_CXXFLAGS  := -Ilib/inc_mac -I$(JAVA_HOME)/include -O2 -fPIC -mmacosx-version-min=10.4 -fvisibility=hidden -I/usr/local/include
Mac-x86_LINKFLAGS := -dynamiclib -static-libgcc -L/usr/local/lib
Mac-x86_LIBNAME   := libcommons-crypto.jnilib
Mac-x86_COMMONS_CRYPTO_FLAGS  :=

Mac-x86_64_CC        := gcc -arch $(OS_ARCH)
Mac-x86_64_CXX       := g++ -arch $(OS_ARCH)
Mac-x86_64_STRIP     := strip -x
Mac-x86_64_CFLAGS    := -Ilib/inc_mac -I$(JAVA_HOME)/include -O2 -fPIC -mmacosx-version-min=10.5 -fvisibility=hidden -I/usr/local/include
Mac-x86_64_CXXFLAGS  := -Ilib/inc_mac -I$(JAVA_HOME)/include -O2 -fPIC -mmacosx-version-min=10.5 -fvisibility=hidden -I/usr/local/include
Mac-x86_64_LINKFLAGS := -dynamiclib -L/usr/local/lib
Mac-x86_64_LIBNAME   := libcommons-crypto.jnilib
Mac-x86_64_COMMONS_CRYPTO_FLAGS  :=

FreeBSD-x86_64_CC           := $(CROSS_PREFIX)gcc
FreeBSD-x86_64_CXX          := $(CROSS_PREFIX)g++
FreeBSD-x86_64_STRIP        := $(CROSS_PREFIX)strip
FreeBSD-x86_64_CFLAGS       := -I$(JAVA_HOME)/include -Ilib/inc_mac -O2 -fPIC -fvisibility=hidden
FreeBSD-x86_64_CXXFLAGS     := -I$(JAVA_HOME)/include -Ilib/inc_mac -O2 -fPIC -fvisibility=hidden
FreeBSD-x86_64_LINKFLAGS    := -shared -static-libgcc
FreeBSD-x86_64_LIBNAME      := libcommons-crypto.so
FreeBSD-x86_64_COMMONS_CRYPTO_FLAGS :=

Windows-x86_CC           := $(CROSS_PREFIX)gcc
Windows-x86_CXX          := $(CROSS_PREFIX)g++
Windows-x86_STRIP        := $(CROSS_PREFIX)strip
Windows-x86_CFLAGS       := -I"$(JAVA_HOME)/include" -Ilib/inc_win -O2
Windows-x86_CXXFLAGS     := -I"$(JAVA_HOME)/include" -Ilib/inc_win -O2
Windows-x86_LINKFLAGS    := -Wl,--kill-at -shared -static
Windows-x86_LIBNAME      := commons-crypto.dll
Windows-x86_COMMONS_CRYPTO_FLAGS :=

Windows-x86_64_CC           := $(CROSS_PREFIX)gcc
Windows-x86_64_CXX          := $(CROSS_PREFIX)g++
Windows-x86_64_STRIP        := $(CROSS_PREFIX)strip
Windows-x86_64_CFLAGS       := -I"$(JAVA_HOME)/include" -Ilib/inc_win -O2 -fno-inline
Windows-x86_64_CXXFLAGS     := -I"$(JAVA_HOME)/include" -Ilib/inc_win -O2 -fno-inline
Windows-x86_64_LINKFLAGS    := -Wl,--kill-at -shared -static
Windows-x86_64_LIBNAME      := commons-crypto.dll
Windows-x86_64_COMMONS-CRYPTO_FLAGS :=


STRIP     := $($(os_arch)_STRIP)
CC        := $($(os_arch)_CC)
CXX       := $($(os_arch)_CXX)
STRIP     := $($(os_arch)_STRIP)
CFLAGS    := $($(os_arch)_CXXFLAGS)
CXXFLAGS  := $($(os_arch)_CXXFLAGS)
LINKFLAGS := $($(os_arch)_LINKFLAGS)
LIBNAME   := $($(os_arch)_LIBNAME)
COMMONS-CRYPTO_FLAGS := $($(os_arch)_COMMONS-CRYPTO_FLAGS)


CFLAGS := $(CFLAGS) -Ilib/include -I/usr/include -I"$(SRC_NATIVE)/org/apache/commons/crypto/"
CXXFLAGS := $(CXXFLAGS) -Ilib/include  -I/usr/include
ifneq ($(jni_include),)
CFLAGS := $(CFLAGS) -I"$(jni_include)" -I"$(TARGET)/jni-classes/org/apache/commons/crypto/cipher" -I"$(TARGET)/jni-classes/org/apache/commons/crypto/random"
CXXFLAGS := $(CXXFLAGS) -I"$(jni_include)" -I"$(TARGET)/jni-classes/org/apache/commons/crypto/cipher" -I"$(TARGET)/jni-classes/org/apache/commons/crypto/random"
endif
