13cbdda60SSimon J. Gerraty# 23cbdda60SSimon J. Gerraty# RCSid: 3*76bc3cfdSSimon J. Gerraty# $Id: java.mk,v 1.16 2021/12/08 05:56:50 sjg Exp $ 43cbdda60SSimon J. Gerraty 53cbdda60SSimon J. Gerraty# @(#) Copyright (c) 1998-2001, Simon J. Gerraty 63cbdda60SSimon J. Gerraty# 73cbdda60SSimon J. Gerraty# This file is provided in the hope that it will 83cbdda60SSimon J. Gerraty# be of use. There is absolutely NO WARRANTY. 93cbdda60SSimon J. Gerraty# Permission to copy, redistribute or otherwise 103cbdda60SSimon J. Gerraty# use this file is hereby granted provided that 113cbdda60SSimon J. Gerraty# the above copyright notice and this notice are 123cbdda60SSimon J. Gerraty# left intact. 133cbdda60SSimon J. Gerraty# 143cbdda60SSimon J. Gerraty# Please send copies of changes and bug-fixes to: 153cbdda60SSimon J. Gerraty# [email protected] 163cbdda60SSimon J. Gerraty# 173cbdda60SSimon J. Gerraty 183cbdda60SSimon J. Gerraty.if !target(__${.PARSEFILE}__) 19*76bc3cfdSSimon J. Gerraty__${.PARSEFILE}__: .NOTMAIN 203cbdda60SSimon J. Gerraty 213cbdda60SSimon J. Gerraty.include <init.mk> 223cbdda60SSimon J. Gerraty 233cbdda60SSimon J. GerratyCLASSPATH?=. 243cbdda60SSimon J. Gerraty 253cbdda60SSimon J. Gerraty.if defined(PROG) 263cbdda60SSimon J. GerratySRCS?= ${PROG:.class=.java} 273cbdda60SSimon J. Gerraty.endif 283cbdda60SSimon J. Gerraty.if !defined(SRCS) || empty(SRCS) 293cbdda60SSimon J. GerratySRCS!=cd ${.CURDIR} && echo *.java 303cbdda60SSimon J. Gerraty.endif 313cbdda60SSimon J. Gerraty.SUFFIXES: .class .java 323cbdda60SSimon J. Gerraty 333cbdda60SSimon J. GerratyCLEANFILES+= *.class 343cbdda60SSimon J. Gerraty 353cbdda60SSimon J. GerratyJAVAC?= javac 363cbdda60SSimon J. GerratyJAVADOC?= javadoc 373cbdda60SSimon J. Gerraty 383cbdda60SSimon J. Gerraty.if !target(docs) 393cbdda60SSimon J. Gerratydocs: 403cbdda60SSimon J. Gerraty ${JAVADOC} ${JAVADOC_FLAGS} ${SRCS} 413cbdda60SSimon J. Gerraty.endif 423cbdda60SSimon J. Gerraty 433cbdda60SSimon J. Gerraty.if defined(JAVADESTDIR) && !empty(JAVADESTDIR) 443cbdda60SSimon J. GerratyJAVASRCDIR?=${JAVADESTDIR:H}/src 453cbdda60SSimon J. Gerraty__classdest:=${JAVADESTDIR}${.CURDIR:S,${JAVASRCDIR},,}/ 463cbdda60SSimon J. GerratyCLASSPATH:=${CLASSPATH}:${JAVADESTDIR} 473cbdda60SSimon J. GerratyJAVAC_FLAGS+= -d ${JAVADESTDIR} 483cbdda60SSimon J. Gerraty.else 493cbdda60SSimon J. Gerraty__classdest= 503cbdda60SSimon J. Gerraty.endif 513cbdda60SSimon J. Gerraty 523cbdda60SSimon J. GerratyJAVAC_FLAGS+= ${JAVAC_DBG} 533cbdda60SSimon J. Gerraty 543cbdda60SSimon J. Gerraty.if defined(MAKE_VERSION) && !defined(NO_CLASSES_COOKIE) 553cbdda60SSimon J. Gerraty# java works best by compiling a bunch of classes at once. 563cbdda60SSimon J. Gerraty# this lot does that but needs a recent netbsd make or 573cbdda60SSimon J. Gerraty# or its portable cousin bmake. 583cbdda60SSimon J. Gerraty.for __s in ${SRCS} 593cbdda60SSimon J. Gerraty__c:= ${__classdest}${__s:.java=.class} 603cbdda60SSimon J. Gerraty.if !target(${__c}) 613cbdda60SSimon J. Gerraty# We need to do something to force __c's parent to be made. 623cbdda60SSimon J. Gerraty${__c}: ${__s} 633cbdda60SSimon J. Gerraty @rm -f ${.TARGET} 643cbdda60SSimon J. Gerraty.endif 653cbdda60SSimon J. GerratySRCS_${__c}=${__s} 663cbdda60SSimon J. Gerraty__classes:= ${__classes} ${__c} 673cbdda60SSimon J. Gerraty.endfor 683cbdda60SSimon J. Gerraty__classes_cookie=${__classdest}.classes.done 693cbdda60SSimon J. GerratyCLEANFILES+= ${__classes} ${__classes_cookie} 703cbdda60SSimon J. Gerraty 713cbdda60SSimon J. Gerraty${__classes_cookie}: ${__classes} 723cbdda60SSimon J. Gerraty CLASSPATH=${CLASSPATH} ${JAVAC} ${JAVAC_FLAGS} ${.OODATE:@c@${SRCS_$c}@} 733cbdda60SSimon J. Gerraty @touch ${.TARGET} 743cbdda60SSimon J. Gerraty 753cbdda60SSimon J. Gerratyall: ${__classes_cookie} 763cbdda60SSimon J. Gerraty 773cbdda60SSimon J. Gerraty.else 783cbdda60SSimon J. Gerraty# this will work with other BSD make's 793cbdda60SSimon J. Gerraty.for __s in ${SRCS} 803cbdda60SSimon J. Gerraty__c:= ${__classdest}${__s:.java=.class} 813cbdda60SSimon J. Gerraty${__c}: ${__s} 823cbdda60SSimon J. Gerraty CLASSPATH=${CLASSPATH} ${JAVAC} ${JAVAC_FLAGS} ${.OODATE} 833cbdda60SSimon J. Gerraty.endfor 843cbdda60SSimon J. Gerraty 853cbdda60SSimon J. Gerratyall: ${SRCS:%.java=${__classdest}%.class} 863cbdda60SSimon J. Gerraty 873cbdda60SSimon J. Gerraty.endif 883cbdda60SSimon J. Gerraty 893cbdda60SSimon J. Gerraty.if !target(cleanjava) 903cbdda60SSimon J. Gerratycleanjava: 913cbdda60SSimon J. Gerraty rm -f [Ee]rrs mklog core *.core ${PROG} ${CLEANFILES} 923cbdda60SSimon J. Gerraty 933cbdda60SSimon J. Gerratyclean: cleanjava 943cbdda60SSimon J. Gerratycleandir: cleanjava 953cbdda60SSimon J. Gerraty.endif 963cbdda60SSimon J. Gerraty 973cbdda60SSimon J. Gerraty.endif 98