# v-- these properties are passed in by the ant build script. should work fine with standard jvms --v prefix=${java.home}/.. OSNAME=${os.name} #prefix=C:/Java/jdk1.5.0_02 #OSNAME=win32 # SHELL = /bin/sh JAVADIR=$(prefix) REL_JAVAEXTLIBPATH=jre/lib/i386 JAVAEXTLIBPATH=$(JAVADIR)/$(REL_JAVAEXTLIBPATH) ARCHNAME=i386 CC=gcc DEFINES=-DUSE_LAME_API LIBSHOUT_DIR=c:/Work/EclipseProjects/libshout-2.1-win USER_LOCAL_DIR=c:/Work/msys/1.0/local #CPPFLAGS=-g -Wall -I$(JAVADIR)/include -I$(JAVADIR)/include/$(OSNAME) -I/usr/local/include -I/local/include -fPIC -D_REENTRANT $(DEFINES) #CPPFLAGS=-Wall -D_JNI_IMPLEMENTATION_ -Wl,--kill-at \ # -Wl,-soname,$(LIBBASENAME).so.1 \ # -I$(JAVADIR)/include -I$(JAVADIR)/include/$(OSNAME) \ # -I/usr/local/include -I/local/include \ # -I$(LIBSHOUT_DIR)/include 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=$(LIBBASENAME).dll LIBDEST_ABSOLUTE=$(ABS_PREFIX)/$(LIBDEST) #gcc 3.4.5 doesn't like --kill-at #CPPFLAGS=-g -Wall -D_JNI_IMPLEMENTATION_ -Wl,--kill-at \ CPPFLAGS=-g -Wall -D_JNI_IMPLEMENTATION_ -Wl \ -I$(JAVADIR)/include -I$(JAVADIR)/include/$(OSNAME) -I$(USER_LOCAL_DIR)/include \ -I$(LIBSHOUT_DIR)/include -I$(LIBSHOUT_DIR)/src #LIBS=-L /usr/local/lib -lshout LIBS=-L $(USER_LOCAL_DIR)/lib -lshout -lwsock32 -logg -lvorbis 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 #.PHONY: test #test: # @echo "$(CC) $(CPPFLAGS) $(LIBDEST) $(OBJECTS) $(LIBS)" all: $(LIBDEST) $(LIBDEST): $(OBJECTS) # dynamic linking of liblame.so echo ## Compiling ## # $(CC) -shared -Wl,-soname,$(LIBBASENAME).so.1 $(LIBDEST) $(OBJECTS) $(LIBS) $(CC) $(CPPFLAGS) -L/usr/local/lib -shared -o $(LIBDEST) $(OBJECTS) $(LIBS) echo ## Finished compiling ## # $(CC) $(CPPFLAGS) $(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 *~