#
# 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-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    := -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 -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"$(JAVA_HOME)/include" -I"$(OPENSSL_HOME)/include" -Ilib/inc_win -O2 -fno-inline
Windows-x86_CXXFLAGS     := -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"$(JAVA_HOME)/include" -I"$(OPENSSL_HOME)/include" -Ilib/inc_win -O2 -fno-inline
Windows-x86_64_CXXFLAGS     := -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
