#------------------------------------------------------------------------------
# Copyright 1996-2016 United States Government as represented by the
# Administrator of the National Aeronautics and Space Administration.
# All Rights Reserved.
#------------------------------------------------------------------------------
#
#  SPDF/CDF						JNI library makefile.
#
#  Version 1.0, 23-Jun-2020
#
#  Modification history:
#
#   V1.0  23-Jun-20, M Liu 	Original version.
#
#------------------------------------------------------------------------------
#

.SILENT:

SHELL=/bin/sh
NULL=true

SHARED=
PIC=
CCx=
LDx=
COPTIONS=
SYSLIBS=
JNIEXT=
SHAREDEXT=
LDOPTIONS=
VERSION=
JAVA_HOME=
JNIOS=
LDLIB=
MAKE=make
SRCDIR=
BLDDIR=

WIN_based=cygwin wingw msys
MATCH=$(filter $(JNIOS), $(WIN_based))
ifeq ("$(JNIOS)","$(MATCH)")
  JNIOS2=win32
  EXTRA=-D__int64="long long"
else
  JNIOS2=$(JNIOS)
  EXTRA=
endif

INCLUDEcdf=../../src/include
INCLUDEjni1=.
INCLUDEjni2=$(JAVA_HOME)/include
INCLUDEjni3=$(INCLUDEjni2)/$(JNIOS2)

CC=$(CCx)
LD=$(LDx)

CFLAGS=$(COPTIONS) $(PIC) $(EXTRA) -I$(INCLUDEcdf) -I$(INCLUDEjni1) \
       -I"$(INCLUDEjni2)" -I"$(INCLUDEjni3)"
LDFLAGS=$(LDOPTIONS)

OBJs=$(BLDDIR)/cdfNativeLibrary.o
CDFlib=$(BLDDIR)/../../src/lib/libcdf.a

CDFh=$(INCLUDEcdf)/cdf.h $(INCLUDEcdf)/cdfconfig.h $(INCLUDEcdf)/cdfdist.h \
     $(INCLUDEcdf)/cdflib.h $(INCLUDEcdf)/cdflib64.h
JNIh=cdfNativeLibrary.h cdfjava.h

#------------------------------------------------------------------------------
# Compile/link.
#------------------------------------------------------------------------------

all: shared.$(SHARED)

shared.yes: $(BLDDIR)/libcdfNativeLibrary.$(JNIEXT)

$(BLDDIR)/libcdfNativeLibrary.so \
$(BLDDIR)/libcdfNativeLibrary.jnilib \
$(BLDDIR)/libcdfNativeLibrary.dll \
$(BLDDIR)/libcdfNativeLibrary.sl: $(OBJs)
	@if [ -f $@ ] ; then rm $@ ; else $(NULL) ; fi
	@echo $(LD) $(LDFLAGS) -o $@ $(OBJs) $(CDFlib) $(LDLIB) -lc -lm
	      $(LD) $(LDFLAGS) -o $@ $(OBJs) $(CDFlib) $(LDLIB) -lc -lm

$(BLDDIR)/%.o: $(SRCDIR)/%.c
	@echo $(CC) $(CFLAGS) -c $< -o $@ ; \
	      $(CC) $(CFLAGS) -c $< -o $@ ; \

$(BLDDIR)/cdfNativeLibrary.o: cdfNativeLibrary.c $(CDFh) $(JNIh) $(CDFlib)

shared.no:

#------------------------------------------------------------------------------
# Clean/purge.
#------------------------------------------------------------------------------

clean:
	@-rm -f $(BLDDIR)/*.o
	@-rm -f $(BLDDIR)/core
	@-rm -f $(BLDDIR)/libcdfNativeLibrary.*

purge:
	@-rm -f $(BLDDIR)/*~
	@-rm -f $(BLDDIR)/*#

