#! /usr/bin/make -f # -*- makefile -*- #ident "$Id: GNUmakefile,v 1.7 2007/07/22 19:41:53 rzr Exp $" #@author: created by www.philippe.coval.online.fr -- revision: $Author: rzr $ #licence: LGPL #------------------------------------------------------------------------------ PACKAGE?=tuxguitar default: all # constants TUXGUITAR_HOME?=${CURDIR} MAINCLASS?=org.herac.${PACKAGE}.gui.TuxGuitar SOURCE_DIR?=./src/ BINARY_DIR?=./bin/ SHARE_DIR?=./share/ #DOC_DIR?=./doc/ DOC_DIR?=${SOURCE_DIR}org/herac/tuxguitar/gui/doc # dependencies JAR_DIR?=/usr/share/java/ SWT_JAR?=${JAR_DIR}swt.jar ITEXT_JAR?=${JAR_DIR}itext.jar # java JAVA?=java JAVA_FLAGS?=-Xms128m -Xmx128m JAVAC?=javac #JAVAC_FLAGS?=-verbose #JAVAC_FLAGS?=-Xlint:deprecation # build JARFILE?=${PACKAGE}.jar LIB_PATH?=/usr/lib/jni CLASSPATH?=${SWT_JAR}:${ITEXT_JAR} # install #DESTDIR?=/opt/${PACKAGE} PREFIX?=${DESTDIR}/usr INSTALL_BIN_DIR?=${PREFIX}/bin INSTALL_LIB_DIR?=${PREFIX}/lib INSTALL_DOC_DIR?=${PREFIX}/share/doc/${PACKAGE} INSTALL_SHARE_DIR?=${PREFIX}/share/${PACKAGE} INSTALL_JAR_DIR?=${INSTALL_SHARE_DIR} # sources SRCS?=$(shell find ${SOURCE_DIR} -name "*.java") #SRCS?=$(wildcard \ # ${SOURCE_DIR}org/herac/${PACKAGE}/*/*/*/*/*.java \ # ${SOURCE_DIR}org/herac/${PACKAGE}/*/*/*/*.java \ # ${SOURCE_DIR}org/herac/${PACKAGE}/*/*/*.java \ # ${SOURCE_DIR}org/herac/${PACKAGE}/*/*.java \ #) CLASSES?=${SRCS:.java=.class} # 0.9.1 RESOURCES_DIR?=org/herac/${PACKAGE}/gui/doc #RESOURCES_DIR?=org/herac/${PACKAGE}/gui/help/about vpath+=${SOURCE_DIR} ${JAR_DIR} VPATH+=${SOURCE_DIR} ${JAR_DIR} # ----------------------------------------------------------------------------- ALL=${BINARY_DIR} classes jar ${PACKAGE} all: ${ALL} ${SRCS}: GNUmakefile ${BINARY_DIR}: -@mkdir -p $@ > /dev/null 2>&1 classes: tmp.classes.tmp tmp.classes.tmp: ${BINARY_DIR} tmp.classes-fast.tmp @touch $@ tmp.classes-slow.tmp: ${CLASSES} @touch $@ # slow: one per one tmp.classes-fast.tmp: ${SRCS} -@mkdir -p ${BINARY_DIR} > /dev/null 2>&1 ${JAVAC} ${JAVAC_FLAGS} -classpath :${CLASSPATH} -d ${BINARY_DIR} $^ @touch $@ # faster than one per one %.class: %.java ${BINARY_DIR} ${JAVAC} ${JAVAC_FLAGS} \ -classpath :${CLASSPATH} -sourcepath ${SOURCE_DIR} -d ${BINARY_DIR} $< jar: ${JARFILE} MANIFEST.MF: GNUmakefile @echo "Manifest-Version: 1.0 " > $@ @echo "Main-Class: ${MAINCLASS} " >> $@ @echo "Class-Path: ${INSTALL_SHARE_DIR} ${SWT_JAR}" >> $@ ${JARFILE}: MANIFEST.MF tmp.classes.tmp -@cp -a ${SOURCE_DIR}/${RESOURCES_DIR}/*.txt \ ${BINARY_DIR}//${RESOURCES_DIR} jar cfm ${CURDIR}/$@ $< -C ${BINARY_DIR} . ${PACKAGE}: GNUmakefile -@rm $@ > /dev/null 2>&1 @echo "#! /bin/sh" > $@ @echo "export CLASSPATH=\"${CLASSPATH}\"" >> $@ @echo "export JAVA=${JAVA}" >> $@ @echo "export JAVA_FLAGS=\"${JAVA_FLAGS}\"" >> $@ @echo "" >> $@ # @echo "cd /usr/share/${PACKAGE} " >> $@ @echo '$$JAVA $$JAVA_FLAGS \ -Djava.library.path=${LIB_PATH} \ -cp ${INSTALL_SHARE_DIR}:${INSTALL_JAR_DIR}/${JARFILE}:$${CLASSPATH} \ ${MAINCLASS} "$$@" ' >> $@ @echo "" >> $@ -@chmod a+x $@ install: ${JARFILE} ${PACKAGE} -install -d ${PREFIX} -install -d ${INSTALL_BIN_DIR} -install -d ${INSTALL_JAR_DIR} -install -d ${INSTALL_SHARE_DIR} -install -d ${INSTALL_DOC_DIR} -install -m 644 ${JARFILE} ${INSTALL_JAR_DIR}/${JARFILE} -install -m 755 ${PACKAGE} ${INSTALL_BIN_DIR}/${PACKAGE} cp -rfa ${SHARE_DIR}/* ${INSTALL_SHARE_DIR}/ cp -rfa ${DOC_DIR}/*.txt ${INSTALL_DOC_DIR}/ run: ${JARFILE} ${JAVA} ${JAVA_FLAGS} -cp ${JARFILE}:${CLASSPATH}:${SHARE_DIR} \ -Djava.library.path=${LIB_PATH} ${MAINCLASS} ${ARGS} clean: -@rm -rf tmp bin *~ build-stamp ${PACKAGE} MANIFEST.MF > /dev/null 2>&1 -@find . -name "*.class" -exec rm -f {} \; > /dev/null 2>&1 -@find . -name "*.jar" -exec rm -f {} \; > /dev/null 2>&1 -@find . -name "*.o" -exec rm -f {} \; > /dev/null 2>&1 -@find . -name "*.a" -exec rm -f {} \; > /dev/null 2>&1 -@find . -name "*.so" -exec rm -f {} \; > /dev/null 2>&1 -@find . -name "*.exe" -exec rm -f {} \; > /dev/null 2>&1 -@find . -name "*.tmp" -exec rm -f {} \; > /dev/null 2>&1 distclean cleanall realclean mrproper: clean -@rm MANIFEST.MF manpage.refs *.o *.class > /dev/null 2>&1 -@find . -type d -name CVS -exec rm -rf {} \; > /dev/null 2>&1 # -@rm ${PACKAGE}.sh ${PACKAGE} ### native ------------------------------------------------------------------- #ALL+=all-native CC=gcj #CFLAGS?=-O -w CFLAGS+=--classpath ${CLASSPATH} -I ${SOURCE_DIR} LIB?=lib${PACKAGE}.so # 0.9.1 NATIVE_SRCS?=${SRCS:${SOURCE_DIR}org/herac/tuxguitar/player/impl/MidiPlayerImpl.java=} NATIVE_SRCS?=${SRCS} #OBJS?=${NATIVE_SRCS:.java=.o} JARS?=${JARFILE} ${SWT_JAR} ${ITEXT_JAR} JARS?=swt.jar itext.jar LIBS?=${JARS:%.jar=%.a} OBJS?=$(notdir ${LIBS}) # PROPERTIES?=\ -Djava.class.path=${INSTALL_SHARE_DIR} \ -Djava.library.path=${LIB_PATH} \ -D${PACKAGE}.share.path=${INSTALL_SHARE_DIR} \ #}PROPERTIES all-native native: objs lib exe objs objects obj : ${OBJS} lib: ${LIB} libs: ${LIBS} exe: ${PACKAGE}.exe install-native: ${PACKAGE}.exe # ${LIB} -install -d ${PREFIX}/ -install -d ${INSTALL_BIN_DIR}/ -install $< ${INSTALL_BIN_DIR}/${PACKAGE}.exe # -install -d ${INSTALL_LIB_DIR}/ # -install ${LIB} ${INSTALL_LIB_DIR}/${LIB} -install -d ${INSTALL_SHARE_DIR}/ cp -rfa ${SHARE_DIR}/* ${INSTALL_SHARE_DIR}/ -install -d ${INSTALL_DOC_DIR}/ cp -rfa ${DOC_DIR}/* ${INSTALL_DOC_DIR}/ run-native: ${PACKAGE}.exe ${