# Makefile for JRI bootstrap # Win/OSX should be ok, Linux will need some tweaking all: boot.jar OSKIND=$(shell if echo "${OS}"|grep -i windows >/dev/null 2>&1; then echo win32; else uname -s; fi) ifeq ($(OSKIND),win32) ifeq ($(JAVA_HOME),) JAVA_HOME=N:/java/jdk1.5.0 endif JSO_PREFIX= JSO_SUFFIX=.dll JCPPFLAGS=-DWIN32 -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/win32 JLDFLAGS=-shared -Wl,--add-stdcall-alias -mno-cygwin JLIBS=-L$(JAVA_HOME)/jre/bin/client -L$(JAVA_HOME)/jre/bin -ljvm PATHSEP=\; KNOWNOS=yes OSNAME=Windows JAVA=$(JAVA_HOME)/bin/java JAVAC=$(JAVA_HOME)/bin/javac JAR=$(JAVA_HOME)/bin/jar endif ifeq ($(OSKIND),Darwin) JSO_PREFIX=lib JSO_SUFFIX=.jnilib JLDFLAGS=-dynamiclib JLIBS=-framework JavaVM JCPPFLAGS=-I/System/Library/Frameworks/JavaVM.framework/Headers PATHSEP=: KNOWNOS=yes OSNAME=MacOSX JAVA=java JAVAC=javac JAR=jar endif ifneq ($(KNOWNOS),yes) ifeq ($(JAVA_HOME),) JAVA_HOME=/usr/lib/java endif JSO_PREFIX=lib JSO_SUFFIX=.so JCPPFLAGS=-I$(JAVA_HOME)/include -I$(shell dirname `find $(JAVA_HOME)/include -name jni_md.h|sed -n -e 1p`) JLDFLAGS=-shared JLIBS=-L$(JAVA_HOME)/lib -ljvm PATHSEP=: OSNAME="generic unix" JAVA=java JAVAC=javac JAR=jar endif $(JSO_PREFIX)boot$(JSO_SUFFIX): JRIBootstrap.o $(CC) $(JLDFLAGS) -o $@ $^ #$(JLIBS) JRIBootstrap.o: JRIBootstrap.c JRIBootstrap.h $(CC) -c -o $@ $< $(JCPPFLAGS) run: boot.jar $(JAVA) -jar $< clean: rm -f JRIBootstrap.o $(JSO_PREFIX)boot$(JSO_SUFFIX) *.class *~ boot.jar: $(JSO_PREFIX)boot$(JSO_SUFFIX) $(JAVAC) -source 1.2 -target 1.2 *.java $(JAR) fcm $@ mft *.class $^ .PHONY: clean run all