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