1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
|
# 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
|