# v-- these properties are passed in by the ant build script. should work fine with standard jvms --v prefix=${java.home}/.. OSNAME=${os.name} # SHELL = /bin/sh JAVADIR=$(prefix) REL_JAVAEXTLIBPATH=jre/lib/i386 JAVAEXTLIBPATH=$(JAVADIR)/$(REL_JAVAEXTLIBPATH) ARCHNAME=i386 CC=gcc DEFINES=-DUSE_LAME_API CPPFLAGS=-g -Wall -I$(JAVADIR)/include -I$(JAVADIR)/include/$(OSNAME) -I/usr/local/include -fPIC -D_REENTRANT $(DEFINES) INSTALL = /bin/install -c INSTALL_PROGRAM = ${INSTALL} INSTALL_DATA = ${INSTALL} -m 644 INSTALL_SCRIPT = ${INSTALL_PROGRAM} LN_S=ln -s RM_F=rm -f MKDIR_P=mkdir -p # to enable debugging of the JNI code: #DEFINES = $(DEFINES) _DEBUG OBJDIR=../build vpath %.class $(OBJDIR)/org/xiph/libshout LIBBASENAME=libshoutjava LIBDEST=$(LIBBASENAME).so.1.0 LIBDEST_ABSOLUTE=$(ABS_PREFIX)/$(LIBDEST) LIBS=-L /usr/local/lib -lshout JAVAH = javah -force -classpath $(OBJDIR) JNIOBJ=\ org_xiph_libshout_Shout.o OBJECTS=$(JNIOBJ) JNICLASSFILES=\ Shout.class JNIHEADERS:=$(JNIOBJ:.o=.h) JNICLASSES=\ org.xiph.libshout.Shout #----------------- rules ------------------- .PHONY: all all: $(LIBDEST) $(LIBDEST): $(OBJECTS) # dynamic linking of liblame.so $(CC) -shared -Wl,-soname -o $(LIBBASENAME).so.1 $(LIBDEST) $(OBJECTS) $(LIBS) # static linking of liblame.a # $(CC) -shared -Wl,-soname,$(LIBBASENAME).so.1 $(LIBDEST) $(OBJECTS) -L. $(LIBS) @$(RM_F) $(LIBBASENAME).so.1 @$(LN_S) $(LIBBASENAME).so.1.0 $(LIBBASENAME).so.1 @$(RM_F) $(LIBBASENAME).so @$(LN_S) $(LIBBASENAME).so.1 $(LIBBASENAME).so $(JNIOBJ): $(JNIHEADERS) $(JNIHEADERS): $(JNICLASSFILES) @$(RM_F) $(JNIHEADERS) $(JAVAH) -d . $(JNICLASSES) .PHONY: install install: @echo "Installing $(LIBBASENAME) in $(JAVAEXTLIBPATH)" @$(MKDIR_P) $(JAVAEXTLIBPATH) @$(RM_F) $(JAVAEXTLIBPATH)/$(LIBBASENAME).so.1.0 @$(RM_F) $(JAVAEXTLIBPATH)/$(LIBBASENAME).so.1 @$(RM_F) $(JAVAEXTLIBPATH)/$(LIBBASENAME).so $(INSTALL_PROGRAM) $(LIBDEST) $(JAVAEXTLIBPATH) @(cd $(JAVAEXTLIBPATH) && $(LN_S) $(LIBBASENAME).so.1.0 $(LIBBASENAME).so.1) @(cd $(JAVAEXTLIBPATH) && $(LN_S) $(LIBBASENAME).so.1 $(LIBBASENAME).so) .PHONY: install-link install-link: @echo "Creating links for $(LIBBASENAME) in $(JAVAEXTLIBPATH)" @$(MKDIR_P) $(JAVAEXTLIBPATH) @$(RM_F) $(JAVAEXTLIBPATH)/$(LIBBASENAME).so.1.0 @$(RM_F) $(JAVAEXTLIBPATH)/$(LIBBASENAME).so.1 @$(RM_F) $(JAVAEXTLIBPATH)/$(LIBBASENAME).so @(cd $(JAVAEXTLIBPATH) && $(LN_S) $(LIBDEST_ABSOLUTE) $(LIBBASENAME).so.1.0) @(cd $(JAVAEXTLIBPATH) && $(LN_S) $(LIBBASENAME).so.1.0 $(LIBBASENAME).so.1) @(cd $(JAVAEXTLIBPATH) && $(LN_S) $(LIBBASENAME).so.1 $(LIBBASENAME).so) .PHONY: uninstall uninstall: @echo "Removing $(LIBBASENAME) from $(JAVAEXTLIBPATH)" @$(RM_F) $(JAVAEXTLIBPATH)/$(LIBBASENAME).so.1.0 @$(RM_F) $(JAVAEXTLIBPATH)/$(LIBBASENAME).so.1 @$(RM_F) $(JAVAEXTLIBPATH)/$(LIBBASENAME).so .PHONY: uninstall-link uninstall-link: uninstall .PHONY: clean clean: $(RM_F) $(LIBDEST) $(JNIHEADERS) *.o *~