#
# 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))

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-aarch64 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)

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

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

# 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
Linux-x86_CXXFLAGS  := -I"$(JAVA_HOME)/include" -O2 -fPIC -fvisibility=hidden -m32
Linux-x86_CFLAGS    := -I"$(JAVA_HOME)/include" -O2 -fPIC -fvisibility=hidden -m32
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
Linux-x86_64_CXXFLAGS  := -Ilib/inc_linux -I"$(JAVA_HOME)/include" -Ilib/inc_mac -O2 -fPIC -fvisibility=hidden -m64 -Wall -Werror
Linux-x86_64_CFLAGS    := -Ilib/inc_linux -I"$(JAVA_HOME)/include" -Ilib/inc_mac -O2 -fPIC -fvisibility=hidden -m64 -Wall -Werror
Linux-x86_64_LINKFLAGS := -shared -static-libgcc
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
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
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
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
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
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
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    := -Ilib/inc_linux -I"$(JAVA_HOME)include" -O2 -fPIC -fvisibility=hidden -mfloat-abi=softfp
Linux-arm_CXXFLAGS  := -Ilib/inc_linux -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    := -Ilib/inc_linux -I"$(JAVA_HOME)/include" -O2 -fPIC -fvisibility=hidden -mfloat-abi=hard
Linux-armhf_CXXFLAGS  := -Ilib/inc_linux -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:=

Linux-aarch64_CC        := $(CROSS_PREFIX)gcc
Linux-aarch64_CXX       := $(CROSS_PREFIX)g++
Linux-aarch64_STRIP     := $(CROSS_PREFIX)strip
Linux-aarch64_CXXFLAGS  := -Ilib/inc_linux -I"$(JAVA_HOME)/include" -Ilib/inc_mac -O2 -fPIC -fvisibility=hidden -Wall -Werror
Linux-aarch64_CFLAGS    := -Ilib/inc_linux -I"$(JAVA_HOME)/include" -Ilib/inc_mac -O2 -fPIC -fvisibility=hidden -Wall -Werror
Linux-aarch64_LINKFLAGS := -shared -static-libgcc
Linux-aarch64_LIBNAME   := libcommons-crypto.so
Linux-aarch64_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 -I/usr/local/opt/openssl/include
Mac-x86_CXXFLAGS  := -Ilib/inc_mac -I"$(JAVA_HOME)/include" -O2 -fPIC -mmacosx-version-min=10.4 -fvisibility=hidden -I/usr/local/include -I/usr/local/opt/openssl/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       := gcc -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.7 -fvisibility=hidden -I/usr/local/include -I/usr/local/opt/openssl/include
Mac-x86_64_CXXFLAGS  := -Ilib/inc_mac -I"$(JAVA_HOME)/include" -O2 -fPIC -mmacosx-version-min=10.7 -fvisibility=hidden -I/usr/local/include -I/usr/local/opt/openssl/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/usr/share/mingw-w64/include -I"$(JAVA_HOME)/include" -I"$(OPENSSL_HOME)/include" -Ilib/inc_win -O2 -fno-inline
Windows-x86_CXXFLAGS     := -I/usr/share/mingw-w64/include -I"$(JAVA_HOME)/include" -I"$(OPENSSL_HOME)/include" -Ilib/inc_win -O2 -fno-inline
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/usr/share/mingw-w64/include -I"$(JAVA_HOME)/include" -I"$(OPENSSL_HOME)/include" -Ilib/inc_win -O2 -fno-inline
Windows-x86_64_CXXFLAGS     := -I/usr/share/mingw-w64/include -I"$(JAVA_HOME)/include" -I"$(OPENSSL_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)_CFLAGS)
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
