xref: /freebsd/contrib/bmake/mk/java.mk (revision c59c3bf34db360695f07735bebc76a768cac5afc)
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