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