COREDIR = ..\..\mDNSCore
SHAREDDIR = ..\..\mDNSShared
JDK = $(JAVA_HOME)
CC = cl
RC = rc
LD = ld
CP = copy
RM = del /Q
RMDIR = rmdir /S /Q
JAVAC = $(JDK)\bin\javac
JAVAH = $(JDK)\bin\javah
JAR = $(JDK)\bin\jar
CFLAGS_COMMON = -LD -DAUTO_CALLBACKS=0 -I. -I..\.. \
-I$(COREDIR) -I$(SHAREDDIR) -I$(JDK)\include -I$(JDK)\include\win32
DEBUG=0
!if $(DEBUG) == 1
CFLAGS_DEBUG = -Zi -DMDNS_DEBUGMSGS=2
OBJDIR = objects\debug
BUILDDIR = build\debug
INSTALLDIR = root\"Program Files"\Bonjour
LIBDIR = ..\DLL\Win32\Debug
!else
CFLAGS_DEBUG = -Os -DMDNS_DEBUGMSGS=0
OBJDIR = objects\prod
BUILDDIR = build\prod
INSTALLDIR = root\"Program Files"\Bonjour
LIBDIR = ..\DLL\Win32\Release
!endif
CFLAGS = $(CFLAGS_COMMON) $(CFLAGS_DEBUG)
JAVACFLAGS = $(CFLAGS) $(JAVACFLAGS_OS)
all: setup Java postbuild
setup:
@if not exist objects mkdir objects
@if not exist build mkdir build
@if not exist $(OBJDIR) mkdir $(OBJDIR)
@if not exist $(BUILDDIR) mkdir $(BUILDDIR)
postbuild:
@if not "%RC_XBS%"=="YES" GOTO CONT
@if not exist "$(DSTROOT)\WINDOWS\system32\Win32" mkdir "$(DSTROOT)\WINDOWS\system32\Win32"
@if not exist "$(DSTROOT)\Program Files\Bonjour\Win32" mkdir "$(DSTROOT)\Program Files\Bonjour\Win32"
@copy $(BUILDDIR)\jdns_sd.dll "$(DSTROOT)\WINDOWS\system32\Win32"
@copy $(BUILDDIR)\dns_sd.jar "$(DSTROOT)\Program Files\Bonjour\Win32"
@:CONT
@if not exist root mkdir root
@if not exist root\"Program Files" mkdir root\"Program Files"
@if not exist $(INSTALLDIR) mkdir $(INSTALLDIR)
copy $(BUILDDIR)\dns_sd.jar $(INSTALLDIR)
copy $(BUILDDIR)\jdns_sd.dll $(INSTALLDIR)
clean:
@if exist $(OBJDIR) $(RMDIR) $(OBJDIR)
@if exist $(BUILDDIR) $(RMDIR) $(BUILDDIR)
Java: setup $(BUILDDIR)\dns_sd.jar $(BUILDDIR)\jdns_sd.dll postbuild
@echo "Java wrappers done"
JAVASRC = $(SHAREDDIR)\Java
JARCONTENTS = $(OBJDIR)\com\apple\dnssd\DNSSDService.class \
$(OBJDIR)\com\apple\dnssd\DNSSDException.class \
$(OBJDIR)\com\apple\dnssd\DNSRecord.class \
$(OBJDIR)\com\apple\dnssd\TXTRecord.class \
$(OBJDIR)\com\apple\dnssd\DNSSDRegistration.class \
$(OBJDIR)\com\apple\dnssd\DNSSDRecordRegistrar.class \
$(OBJDIR)\com\apple\dnssd\BaseListener.class \
$(OBJDIR)\com\apple\dnssd\BrowseListener.class \
$(OBJDIR)\com\apple\dnssd\ResolveListener.class \
$(OBJDIR)\com\apple\dnssd\RegisterListener.class \
$(OBJDIR)\com\apple\dnssd\RegisterRecordListener.class \
$(OBJDIR)\com\apple\dnssd\QueryListener.class \
$(OBJDIR)\com\apple\dnssd\DomainListener.class \
$(OBJDIR)\com\apple\dnssd\DNSSD.class
$(BUILDDIR)\dns_sd.jar: $(JARCONTENTS)
$(JAR) -cf $@ -C $(OBJDIR) com
$(BUILDDIR)\jdns_sd.dll: $(JAVASRC)\JNISupport.c $(OBJDIR)\DNSSD.java.h $(OBJDIR)\jdns_sd.RES
$(CC) -Fe$@ $(JAVASRC)\JNISupport.c $(CFLAGS) -I$(OBJDIR) \
$(LIBDIR)\DNSSD.lib $(JDK)\lib\jvm.lib ws2_32.lib iphlpapi.lib $(OBJDIR)\jdns_sd.RES /link /NXCOMPAT /DYNAMICBASE /SAFESEH
.SUFFIXES : .java
{$(JAVASRC)}.java{$(OBJDIR)\com\apple\dnssd}.class:
$(JAVAC) -d $(OBJDIR) -classpath $(OBJDIR) $<
$(OBJDIR)\DNSSD.java.h: $(OBJDIR)\com\apple\dnssd\DNSSD.class
$(JAVAH) -classpath $(OBJDIR) -o $@ \
com.apple.dnssd.AppleBrowser \
com.apple.dnssd.AppleResolver \
com.apple.dnssd.AppleRegistration \
com.apple.dnssd.AppleQuery \
com.apple.dnssd.AppleService
$(OBJDIR)\jdns_sd.RES: jdns_sd.rc
$(RC) /fo $@ $?