xref: /aosp_15_r20/external/mdnsresponder/mDNSWindows/Java/makefile (revision 48a54d368dc4fa860885eef7b70b6c53499e7c25)
1*48a54d36SAndroid Build Coastguard Worker# -*- tab-width: 4 -*-
2*48a54d36SAndroid Build Coastguard Worker#
3*48a54d36SAndroid Build Coastguard Worker# Copyright (c) 2002-2004 Apple Computer, Inc. All rights reserved.
4*48a54d36SAndroid Build Coastguard Worker#
5*48a54d36SAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License");
6*48a54d36SAndroid Build Coastguard Worker# you may not use this file except in compliance with the License.
7*48a54d36SAndroid Build Coastguard Worker# You may obtain a copy of the License at
8*48a54d36SAndroid Build Coastguard Worker#
9*48a54d36SAndroid Build Coastguard Worker#     http://www.apache.org/licenses/LICENSE-2.0
10*48a54d36SAndroid Build Coastguard Worker#
11*48a54d36SAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software
12*48a54d36SAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS,
13*48a54d36SAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*48a54d36SAndroid Build Coastguard Worker# See the License for the specific language governing permissions and
15*48a54d36SAndroid Build Coastguard Worker# limitations under the License.
16*48a54d36SAndroid Build Coastguard Worker#
17*48a54d36SAndroid Build Coastguard Worker# This Makefile builds a .jar file and accompanying JNI support library
18*48a54d36SAndroid Build Coastguard Worker# containing the DNSSD implementation for Java and support classes.
19*48a54d36SAndroid Build Coastguard Worker#
20*48a54d36SAndroid Build Coastguard Worker# Prior to building Java support, you must build DNSSD.dll.
21*48a54d36SAndroid Build Coastguard Worker#
22*48a54d36SAndroid Build Coastguard Worker# nmake with no arguments builds all production targets.
23*48a54d36SAndroid Build Coastguard Worker# 'nmake DEBUG=1' to build debugging targets.
24*48a54d36SAndroid Build Coastguard Worker# 'nmake clean' or 'nmake clean DEBUG=1' to delete prod/debug objects & targets
25*48a54d36SAndroid Build Coastguard Worker#
26*48a54d36SAndroid Build Coastguard Worker# To run nmake, you may need to set up your PATH correctly, using a script
27*48a54d36SAndroid Build Coastguard Worker# such as: "\Program Files\Microsoft Visual Studio .NET\Vc7\bin\vcvars32.bat"
28*48a54d36SAndroid Build Coastguard Worker#
29*48a54d36SAndroid Build Coastguard Worker# The default location of the JDK is \javasdk. You can override this on the
30*48a54d36SAndroid Build Coastguard Worker# command line (e.g. 'nmake JDK=\j2dk1.4.2_03').
31*48a54d36SAndroid Build Coastguard Worker
32*48a54d36SAndroid Build Coastguard Worker############################################################################
33*48a54d36SAndroid Build Coastguard Worker
34*48a54d36SAndroid Build Coastguard WorkerCOREDIR = ..\..\mDNSCore
35*48a54d36SAndroid Build Coastguard WorkerSHAREDDIR = ..\..\mDNSShared
36*48a54d36SAndroid Build Coastguard Worker
37*48a54d36SAndroid Build Coastguard WorkerJDK = $(JAVA_HOME)
38*48a54d36SAndroid Build Coastguard Worker
39*48a54d36SAndroid Build Coastguard WorkerCC = cl
40*48a54d36SAndroid Build Coastguard WorkerRC = rc
41*48a54d36SAndroid Build Coastguard WorkerLD = ld
42*48a54d36SAndroid Build Coastguard WorkerCP = copy
43*48a54d36SAndroid Build Coastguard WorkerRM = del /Q
44*48a54d36SAndroid Build Coastguard WorkerRMDIR = rmdir /S /Q
45*48a54d36SAndroid Build Coastguard WorkerJAVAC = $(JDK)\bin\javac
46*48a54d36SAndroid Build Coastguard WorkerJAVAH = $(JDK)\bin\javah
47*48a54d36SAndroid Build Coastguard WorkerJAR = $(JDK)\bin\jar
48*48a54d36SAndroid Build Coastguard WorkerCFLAGS_COMMON = -LD -DAUTO_CALLBACKS=0 -I. -I..\.. \
49*48a54d36SAndroid Build Coastguard Worker	-I$(COREDIR) -I$(SHAREDDIR) -I$(JDK)\include -I$(JDK)\include\win32
50*48a54d36SAndroid Build Coastguard Worker
51*48a54d36SAndroid Build Coastguard Worker# Set up diverging paths for debug vs. prod builds
52*48a54d36SAndroid Build Coastguard WorkerDEBUG=0
53*48a54d36SAndroid Build Coastguard Worker!if $(DEBUG) == 1
54*48a54d36SAndroid Build Coastguard WorkerCFLAGS_DEBUG = -Zi -DMDNS_DEBUGMSGS=2
55*48a54d36SAndroid Build Coastguard WorkerOBJDIR = objects\debug
56*48a54d36SAndroid Build Coastguard WorkerBUILDDIR = build\debug
57*48a54d36SAndroid Build Coastguard WorkerINSTALLDIR = root\"Program Files"\Bonjour
58*48a54d36SAndroid Build Coastguard WorkerLIBDIR = ..\DLL\Win32\Debug
59*48a54d36SAndroid Build Coastguard Worker!else
60*48a54d36SAndroid Build Coastguard WorkerCFLAGS_DEBUG = -Os -DMDNS_DEBUGMSGS=0
61*48a54d36SAndroid Build Coastguard WorkerOBJDIR = objects\prod
62*48a54d36SAndroid Build Coastguard WorkerBUILDDIR = build\prod
63*48a54d36SAndroid Build Coastguard WorkerINSTALLDIR = root\"Program Files"\Bonjour
64*48a54d36SAndroid Build Coastguard WorkerLIBDIR = ..\DLL\Win32\Release
65*48a54d36SAndroid Build Coastguard Worker!endif
66*48a54d36SAndroid Build Coastguard Worker
67*48a54d36SAndroid Build Coastguard WorkerCFLAGS = $(CFLAGS_COMMON) $(CFLAGS_DEBUG)
68*48a54d36SAndroid Build Coastguard WorkerJAVACFLAGS = $(CFLAGS) $(JAVACFLAGS_OS)
69*48a54d36SAndroid Build Coastguard Worker
70*48a54d36SAndroid Build Coastguard Worker#############################################################################
71*48a54d36SAndroid Build Coastguard Worker
72*48a54d36SAndroid Build Coastguard Workerall: setup Java postbuild
73*48a54d36SAndroid Build Coastguard Worker
74*48a54d36SAndroid Build Coastguard Worker# 'setup' sets up the build directory structure the way we want
75*48a54d36SAndroid Build Coastguard Workersetup:
76*48a54d36SAndroid Build Coastguard Worker	@if not exist objects		mkdir objects
77*48a54d36SAndroid Build Coastguard Worker	@if not exist build			mkdir build
78*48a54d36SAndroid Build Coastguard Worker	@if not exist $(OBJDIR)		mkdir $(OBJDIR)
79*48a54d36SAndroid Build Coastguard Worker	@if not exist $(BUILDDIR)	mkdir $(BUILDDIR)
80*48a54d36SAndroid Build Coastguard Worker
81*48a54d36SAndroid Build Coastguard Workerpostbuild:
82*48a54d36SAndroid Build Coastguard Worker	@if not "%RC_XBS%"=="YES" GOTO CONT
83*48a54d36SAndroid Build Coastguard Worker	@if not exist "$(DSTROOT)\WINDOWS\system32\Win32"	mkdir "$(DSTROOT)\WINDOWS\system32\Win32"
84*48a54d36SAndroid Build Coastguard Worker	@if not exist "$(DSTROOT)\Program Files\Bonjour\Win32"	mkdir "$(DSTROOT)\Program Files\Bonjour\Win32"
85*48a54d36SAndroid Build Coastguard Worker	@copy $(BUILDDIR)\jdns_sd.dll "$(DSTROOT)\WINDOWS\system32\Win32"
86*48a54d36SAndroid Build Coastguard Worker	@copy $(BUILDDIR)\dns_sd.jar  "$(DSTROOT)\Program Files\Bonjour\Win32"
87*48a54d36SAndroid Build Coastguard Worker	@:CONT
88*48a54d36SAndroid Build Coastguard Worker	@if not exist root					mkdir root
89*48a54d36SAndroid Build Coastguard Worker	@if not exist root\"Program Files"	mkdir root\"Program Files"
90*48a54d36SAndroid Build Coastguard Worker	@if not exist $(INSTALLDIR)			mkdir $(INSTALLDIR)
91*48a54d36SAndroid Build Coastguard Worker	copy $(BUILDDIR)\dns_sd.jar $(INSTALLDIR)
92*48a54d36SAndroid Build Coastguard Worker	copy $(BUILDDIR)\jdns_sd.dll $(INSTALLDIR)
93*48a54d36SAndroid Build Coastguard Worker
94*48a54d36SAndroid Build Coastguard Worker# clean removes targets and objects
95*48a54d36SAndroid Build Coastguard Workerclean:
96*48a54d36SAndroid Build Coastguard Worker	@if exist $(OBJDIR)		$(RMDIR) $(OBJDIR)
97*48a54d36SAndroid Build Coastguard Worker	@if exist $(BUILDDIR)	$(RMDIR) $(BUILDDIR)
98*48a54d36SAndroid Build Coastguard Worker
99*48a54d36SAndroid Build Coastguard Worker#############################################################################
100*48a54d36SAndroid Build Coastguard Worker
101*48a54d36SAndroid Build Coastguard Worker# The following targets build Java wrappers for the dns-sd.h API.
102*48a54d36SAndroid Build Coastguard Worker
103*48a54d36SAndroid Build Coastguard WorkerJava: setup $(BUILDDIR)\dns_sd.jar $(BUILDDIR)\jdns_sd.dll postbuild
104*48a54d36SAndroid Build Coastguard Worker	@echo "Java wrappers done"
105*48a54d36SAndroid Build Coastguard Worker
106*48a54d36SAndroid Build Coastguard WorkerJAVASRC	= $(SHAREDDIR)\Java
107*48a54d36SAndroid Build Coastguard WorkerJARCONTENTS =	$(OBJDIR)\com\apple\dnssd\DNSSDService.class \
108*48a54d36SAndroid Build Coastguard Worker				$(OBJDIR)\com\apple\dnssd\DNSSDException.class \
109*48a54d36SAndroid Build Coastguard Worker				$(OBJDIR)\com\apple\dnssd\DNSRecord.class \
110*48a54d36SAndroid Build Coastguard Worker				$(OBJDIR)\com\apple\dnssd\TXTRecord.class \
111*48a54d36SAndroid Build Coastguard Worker				$(OBJDIR)\com\apple\dnssd\DNSSDRegistration.class \
112*48a54d36SAndroid Build Coastguard Worker				$(OBJDIR)\com\apple\dnssd\DNSSDRecordRegistrar.class \
113*48a54d36SAndroid Build Coastguard Worker				$(OBJDIR)\com\apple\dnssd\BaseListener.class \
114*48a54d36SAndroid Build Coastguard Worker				$(OBJDIR)\com\apple\dnssd\BrowseListener.class \
115*48a54d36SAndroid Build Coastguard Worker				$(OBJDIR)\com\apple\dnssd\ResolveListener.class \
116*48a54d36SAndroid Build Coastguard Worker				$(OBJDIR)\com\apple\dnssd\RegisterListener.class \
117*48a54d36SAndroid Build Coastguard Worker				$(OBJDIR)\com\apple\dnssd\RegisterRecordListener.class \
118*48a54d36SAndroid Build Coastguard Worker				$(OBJDIR)\com\apple\dnssd\QueryListener.class \
119*48a54d36SAndroid Build Coastguard Worker				$(OBJDIR)\com\apple\dnssd\DomainListener.class \
120*48a54d36SAndroid Build Coastguard Worker				$(OBJDIR)\com\apple\dnssd\DNSSD.class
121*48a54d36SAndroid Build Coastguard Worker
122*48a54d36SAndroid Build Coastguard Worker$(BUILDDIR)\dns_sd.jar: $(JARCONTENTS)
123*48a54d36SAndroid Build Coastguard Worker	$(JAR) -cf $@ -C $(OBJDIR) com
124*48a54d36SAndroid Build Coastguard Worker
125*48a54d36SAndroid Build Coastguard Worker$(BUILDDIR)\jdns_sd.dll: $(JAVASRC)\JNISupport.c $(OBJDIR)\DNSSD.java.h $(OBJDIR)\jdns_sd.RES
126*48a54d36SAndroid Build Coastguard Worker	$(CC) -Fe$@ $(JAVASRC)\JNISupport.c $(CFLAGS) -I$(OBJDIR) \
127*48a54d36SAndroid Build Coastguard Worker	$(LIBDIR)\DNSSD.lib $(JDK)\lib\jvm.lib ws2_32.lib iphlpapi.lib $(OBJDIR)\jdns_sd.RES /link /NXCOMPAT /DYNAMICBASE /SAFESEH
128*48a54d36SAndroid Build Coastguard Worker
129*48a54d36SAndroid Build Coastguard Worker.SUFFIXES : .java
130*48a54d36SAndroid Build Coastguard Worker{$(JAVASRC)}.java{$(OBJDIR)\com\apple\dnssd}.class:
131*48a54d36SAndroid Build Coastguard Worker	$(JAVAC) -d $(OBJDIR) -classpath $(OBJDIR) $<
132*48a54d36SAndroid Build Coastguard Worker
133*48a54d36SAndroid Build Coastguard Worker$(OBJDIR)\DNSSD.java.h: $(OBJDIR)\com\apple\dnssd\DNSSD.class
134*48a54d36SAndroid Build Coastguard Worker	$(JAVAH) -classpath $(OBJDIR) -o $@ \
135*48a54d36SAndroid Build Coastguard Worker		com.apple.dnssd.AppleBrowser \
136*48a54d36SAndroid Build Coastguard Worker		com.apple.dnssd.AppleResolver \
137*48a54d36SAndroid Build Coastguard Worker		com.apple.dnssd.AppleRegistration \
138*48a54d36SAndroid Build Coastguard Worker		com.apple.dnssd.AppleQuery \
139*48a54d36SAndroid Build Coastguard Worker		com.apple.dnssd.AppleService
140*48a54d36SAndroid Build Coastguard Worker
141*48a54d36SAndroid Build Coastguard Worker$(OBJDIR)\jdns_sd.RES: jdns_sd.rc
142*48a54d36SAndroid Build Coastguard Worker	$(RC) /fo $@ $?
143*48a54d36SAndroid Build Coastguard Worker
144