# $Id: Makefile,v 1.15 2000/07/06 13:03:40 sdalu Exp $

.EXPORT_ALL_VARIABLES:

#-- CONFIG ------------------------------------------------------------

ifndef ARCH
ARCH      := i386
endif
HAVE_ANEP := 1

#----------------------------------------------------------------------

ifndef PLATFORM
PLATFORM := $(shell uname | tr 'A-Z' 'a-z')
endif

ifndef WITH_BACKUP
WITH_BACKUP := "yes"
endif

ifndef TMPDIR
TMPDIR := /tmp
endif

ifndef TMPINST
TMPINST := jdkv6ext
endif

ifndef TAR
TAR = tar
endif

ifndef JDK_FULL_VERSION
JDK_FULL_VERSION := $(shell java -version 2>&1 | grep version | \
                cut -d '"' -f 2)
endif

ifndef JDK_VERSION
JDK_MAJOR   := $(shell echo $(JDK_FULL_VERSION) | cut -d '.' -f 1)
JDK_MINOR   := $(shell echo $(JDK_FULL_VERSION) | cut -d '.' -f 2)
ifdef JDK_MAJOR
ifdef JDK_MINOR
JDK_VERSION := $(JDK_MAJOR).$(JDK_MINOR)
endif
endif
endif

ifndef JDK_DECVERSION
JDK_DECVERSION := `echo "$(JDK_MAJOR)*100 + $(JDK_MINOR)" | bc`
ifeq "$(JDK_VERSION)" "1.1"
JDK_DECVERSION := 1
endif
ifeq "$(JDK_VERSION)" "1.2"
JDK_DECVERSION := 2
endif
ifeq "$(JDK_VERSION)" "1.3"
JDK_DECVERSION := 3
endif
endif

ifndef JDK_DIR
JDK_DIR := jdk$(JDK_VERSION)
endif

ifndef BINDIST_ARCHIVE
BINDIST_ARCHIVE = jdkv6ext-$(JDK_VERSION)_$(ARCH)-$(PLATFORM).tar.gz
endif

ifndef JAVADIR
JAVADIR := $(shell java -verbose 2>&1 | grep rt.jar | grep Opened | \
		sed 's|\[Opened \(.*\)/jre/lib/rt.jar.*\]|\1|g' )
endif
ifndef DEFAULTCLASSPATH
DEFAULTCLASSPATH := $(shell javah -verbose 2> /dev/null | grep '\[Search' | \
		sed 's/^\[Search path = \(.*\)\]/\1/g')
endif

ifndef RM
RM=rm
endif

ifndef CP
CP=cp
endif

ifndef LN
LN=ln
endif

ifndef JAVAC
JAVAC = javac
endif

ifndef JAVACFLAGS
JAVACFLAGS = -bootclasspath $(BOOTCLASSPATH)
endif

ifndef JAVAH
JAVAH = javah
endif

ifndef JAVAHFLAGS
JAVAHFLAGS = -bootclasspath $(BOOTCLASSPATH)
endif

ifndef JAR
JAR = jar
endif

ifndef JAVADOC
JAVADOC = javadoc
endif

ifndef JAVADOCFLAGS
JAVADOCFLAGS = -splitindex
endif

ifndef CFLAGS
CFLAGS = -Wall -O6 -I sysdeps/linux/include
endif

ifndef CCSHAREDFLAGS
CCSHAREDFLAGS = -fPIC
endif

ifndef LDSHAREDFLAGS
LDSHAREDFLAGS = -shared
endif

ifndef INSTALL
INSTALL = install
endif

ifndef DESTARCHIVE
DESTARCHIVE = $(TOPDIR)
endif

#----------------------------------------------------------------------

BOOTCLASSPATH  = $(TOPDIR)/classes/$(JDK_DIR):$(DEFAULTCLASSPATH)

TOPDIR := $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi)

BASEDIR := $(notdir $(TOPDIR))

ARCHIVE := $(BASEDIR)

DOCDIR := $(TOPDIR)/doc

MISCDIR := $(TOPDIR)/misc

SUBDIRS = classes c-code test

#----------------------------------------------------------------------

ifndef JDK_VERSION
%:
	@echo Not able to guess enough information. Edit the Makefile
	@exit 1
endif

all: print-info commoncode subdirs

commoncode:
	@echo Hacking for common file/directory
	$(LN) -sf compat_jdk_2.c c-code/unix/compat_jdk_3.c
	[ -e classes/jdk1.3 ] || $(LN) -sf jdk1.2 classes/jdk1.3

clean: subdirs
	$(RM) -R $(DOCDIR)/jdk1.1 $(DOCDIR)/jdk1.2 $(DOCDIR)/jdk1.3
	$(RM) `find . -type l -print`


distclean: 
	$(MAKE) clean
	$(RM) `find . -type f -name '*.class' -print`
	$(RM) `find . -type f -name '*.o' -print`
	$(RM) `find . -type f -name '*~' -print`
	$(RM) `find . -type f -name 'core' -print`
	$(RM) $(ARCHIVE).tgz

tar: distclean
	cd .. && $(TAR) cvfz /$(TMPDIR)/$(ARCHIVE).tgz `find $(BASEDIR) -type f ! -regex '.*/CVS/.*'` && mv /$(TMPDIR)/$(ARCHIVE).tgz $(DESTARCHIVE)

print-info:
	@echo "--------------------------------------------------"
	@echo "Platform            : $(PLATFORM)"
	@echo "Architecture        : $(ARCH)"
	@echo "JDK version         : $(JDK_VERSION)"
	@echo "Using JDK decversion: $(JDK_DECVERSION)"
	@echo "Java directory      : $(JAVADIR)"
#	@echo "Default classpath   : $(DEFAULTCLASSPATH)"
ifdef HAVE_ANEP
	@echo "Compile with ANEP   : yes"
else
	@echo "Compile with ANEP   : no"
endif
	@echo "--------------------------------------------------"
	@echo


bindist:
	mkdir $(TMPDIR)/$(TMPINST)
	$(MAKE)
	WITH_BACKUP="no" JAR="$(MISCDIR)/fakejar.sh $(TMPDIR)/$(TMPINST)/classes" JAVADIR="$(TMPDIR)/$(TMPINST)" $(MAKE) install
	$(CP) $(MISCDIR)/INSTALL_jdk$(JDK_DECVERSION) $(TMPDIR)/$(TMPINST)/INSTALL
	$(CP) $(TOPDIR)/VERSION $(TMPDIR)/$(TMPINST)
	cd $(TMPDIR) && $(TAR) cvfz $(BINDIST_ARCHIVE) $(TMPINST) && mv $(BINDIST_ARCHIVE) $(DESTARCHIVE)
	$(RM) -R $(TMPDIR)/$(TMPINST)


include $(TOPDIR)/Rules.make

