1*3cbdda60SSimon J. Gerraty# 2*3cbdda60SSimon J. Gerraty# RCSid: 3*3cbdda60SSimon J. Gerraty# $Id: java.mk,v 1.14 2007/11/22 08:16:25 sjg Exp $ 4*3cbdda60SSimon J. Gerraty 5*3cbdda60SSimon J. Gerraty# @(#) Copyright (c) 1998-2001, Simon J. Gerraty 6*3cbdda60SSimon J. Gerraty# 7*3cbdda60SSimon J. Gerraty# This file is provided in the hope that it will 8*3cbdda60SSimon J. Gerraty# be of use. There is absolutely NO WARRANTY. 9*3cbdda60SSimon J. Gerraty# Permission to copy, redistribute or otherwise 10*3cbdda60SSimon J. Gerraty# use this file is hereby granted provided that 11*3cbdda60SSimon J. Gerraty# the above copyright notice and this notice are 12*3cbdda60SSimon J. Gerraty# left intact. 13*3cbdda60SSimon J. Gerraty# 14*3cbdda60SSimon J. Gerraty# Please send copies of changes and bug-fixes to: 15*3cbdda60SSimon J. Gerraty# sjg@crufty.net 16*3cbdda60SSimon J. Gerraty# 17*3cbdda60SSimon J. Gerraty 18*3cbdda60SSimon J. Gerraty.if !target(__${.PARSEFILE}__) 19*3cbdda60SSimon J. Gerraty__${.PARSEFILE}__: 20*3cbdda60SSimon J. Gerraty 21*3cbdda60SSimon J. Gerraty.include <init.mk> 22*3cbdda60SSimon J. Gerraty 23*3cbdda60SSimon J. GerratyCLASSPATH?=. 24*3cbdda60SSimon J. Gerraty 25*3cbdda60SSimon J. Gerraty.if defined(PROG) 26*3cbdda60SSimon J. GerratySRCS?= ${PROG:.class=.java} 27*3cbdda60SSimon J. Gerraty.endif 28*3cbdda60SSimon J. Gerraty.if !defined(SRCS) || empty(SRCS) 29*3cbdda60SSimon J. GerratySRCS!=cd ${.CURDIR} && echo *.java 30*3cbdda60SSimon J. Gerraty.endif 31*3cbdda60SSimon J. Gerraty.SUFFIXES: .class .java 32*3cbdda60SSimon J. Gerraty 33*3cbdda60SSimon J. GerratyCLEANFILES+= *.class 34*3cbdda60SSimon J. Gerraty 35*3cbdda60SSimon J. GerratyJAVAC?= javac 36*3cbdda60SSimon J. GerratyJAVADOC?= javadoc 37*3cbdda60SSimon J. Gerraty 38*3cbdda60SSimon J. Gerraty.if !target(docs) 39*3cbdda60SSimon J. Gerratydocs: 40*3cbdda60SSimon J. Gerraty ${JAVADOC} ${JAVADOC_FLAGS} ${SRCS} 41*3cbdda60SSimon J. Gerraty.endif 42*3cbdda60SSimon J. Gerraty 43*3cbdda60SSimon J. Gerraty.if defined(JAVADESTDIR) && !empty(JAVADESTDIR) 44*3cbdda60SSimon J. GerratyJAVASRCDIR?=${JAVADESTDIR:H}/src 45*3cbdda60SSimon J. Gerraty__classdest:=${JAVADESTDIR}${.CURDIR:S,${JAVASRCDIR},,}/ 46*3cbdda60SSimon J. GerratyCLASSPATH:=${CLASSPATH}:${JAVADESTDIR} 47*3cbdda60SSimon J. GerratyJAVAC_FLAGS+= -d ${JAVADESTDIR} 48*3cbdda60SSimon J. Gerraty.else 49*3cbdda60SSimon J. Gerraty__classdest= 50*3cbdda60SSimon J. Gerraty.endif 51*3cbdda60SSimon J. Gerraty 52*3cbdda60SSimon J. GerratyJAVAC_FLAGS+= ${JAVAC_DBG} 53*3cbdda60SSimon J. Gerraty 54*3cbdda60SSimon J. Gerraty.if defined(MAKE_VERSION) && !defined(NO_CLASSES_COOKIE) 55*3cbdda60SSimon J. Gerraty# java works best by compiling a bunch of classes at once. 56*3cbdda60SSimon J. Gerraty# this lot does that but needs a recent netbsd make or 57*3cbdda60SSimon J. Gerraty# or its portable cousin bmake. 58*3cbdda60SSimon J. Gerraty.for __s in ${SRCS} 59*3cbdda60SSimon J. Gerraty__c:= ${__classdest}${__s:.java=.class} 60*3cbdda60SSimon J. Gerraty.if !target(${__c}) 61*3cbdda60SSimon J. Gerraty# We need to do something to force __c's parent to be made. 62*3cbdda60SSimon J. Gerraty${__c}: ${__s} 63*3cbdda60SSimon J. Gerraty @rm -f ${.TARGET} 64*3cbdda60SSimon J. Gerraty.endif 65*3cbdda60SSimon J. GerratySRCS_${__c}=${__s} 66*3cbdda60SSimon J. Gerraty__classes:= ${__classes} ${__c} 67*3cbdda60SSimon J. Gerraty.endfor 68*3cbdda60SSimon J. Gerraty__classes_cookie=${__classdest}.classes.done 69*3cbdda60SSimon J. GerratyCLEANFILES+= ${__classes} ${__classes_cookie} 70*3cbdda60SSimon J. Gerraty 71*3cbdda60SSimon J. Gerraty${__classes_cookie}: ${__classes} 72*3cbdda60SSimon J. Gerraty CLASSPATH=${CLASSPATH} ${JAVAC} ${JAVAC_FLAGS} ${.OODATE:@c@${SRCS_$c}@} 73*3cbdda60SSimon J. Gerraty @touch ${.TARGET} 74*3cbdda60SSimon J. Gerraty 75*3cbdda60SSimon J. Gerratyall: ${__classes_cookie} 76*3cbdda60SSimon J. Gerraty 77*3cbdda60SSimon J. Gerraty.else 78*3cbdda60SSimon J. Gerraty# this will work with other BSD make's 79*3cbdda60SSimon J. Gerraty.for __s in ${SRCS} 80*3cbdda60SSimon J. Gerraty__c:= ${__classdest}${__s:.java=.class} 81*3cbdda60SSimon J. Gerraty${__c}: ${__s} 82*3cbdda60SSimon J. Gerraty CLASSPATH=${CLASSPATH} ${JAVAC} ${JAVAC_FLAGS} ${.OODATE} 83*3cbdda60SSimon J. Gerraty.endfor 84*3cbdda60SSimon J. Gerraty 85*3cbdda60SSimon J. Gerratyall: ${SRCS:%.java=${__classdest}%.class} 86*3cbdda60SSimon J. Gerraty 87*3cbdda60SSimon J. Gerraty.endif 88*3cbdda60SSimon J. Gerraty 89*3cbdda60SSimon J. Gerraty.if !target(cleanjava) 90*3cbdda60SSimon J. Gerratycleanjava: 91*3cbdda60SSimon J. Gerraty rm -f [Ee]rrs mklog core *.core ${PROG} ${CLEANFILES} 92*3cbdda60SSimon J. Gerraty 93*3cbdda60SSimon J. Gerratyclean: cleanjava 94*3cbdda60SSimon J. Gerratycleandir: cleanjava 95*3cbdda60SSimon J. Gerraty.endif 96*3cbdda60SSimon J. Gerraty 97*3cbdda60SSimon J. Gerraty.endif 98