## Makefile for building ethereal.exe with Microsoft C and nmake
## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
#
-# $Id: Makefile.nmake,v 1.390 2004/01/16 04:37:54 gerald Exp $
+# $Id$
include config.nmake
include <win32.mak>
LDFLAGS = /NOLOGO /INCREMENTAL:no /MACHINE:I386 $(LOCAL_LDFLAGS)
-CFLAGS=-DHAVE_CONFIG_H $(LOCAL_CFLAGS) $(GTK_CFLAGS) /I. /Iwiretap \
+CFLAGS=-DHAVE_CONFIG_H $(LOCAL_CFLAGS) $(GLIB_CFLAGS) /I. /Iwiretap \
$(ZLIB_CFLAGS) /I$(PCAP_DIR)\include \
/I$(NET_SNMP_DIR)\include /I$(NET_SNMP_DIR)\win32 \
$(ADNS_CFLAGS) $(PCRE_CFLAGS) -D_U_=""
CVARSDLL=-DWIN32 -DNULL=0 -D_MT -D_DLL
.c.obj::
- $(CC) $(CVARSDLL) $(CFLAGS) -Fd.\ -c $<
-
-DISSECTOR_SRC = \
- packet-aarp.c \
- packet-acap.c \
- packet-afp.c \
- packet-afs.c \
- packet-aim.c \
- packet-ajp13.c \
- packet-alcap.c \
- packet-ans.c \
- packet-ansi_a.c \
- packet-ansi_637.c \
- packet-ansi_683.c \
- packet-ansi_map.c \
- packet-aodv.c \
- packet-arcnet.c \
- packet-arp.c \
- packet-asap.c \
- packet-ascend.c\
- packet-asf.c \
- packet-atalk.c \
- packet-atm.c \
- packet-auto_rp.c \
- packet-bacapp.c \
- packet-bacnet.c \
- packet-beep.c \
- packet-bfd.c \
- packet-bgp.c \
- packet-bofl.c \
- packet-bootp.c \
- packet-bootparams.c \
- packet-bpdu.c \
- packet-brdwlk.c \
- packet-bssap.c \
- packet-bssgp.c \
- packet-bvlc.c \
- packet-ccsds.c \
- packet-cdp.c \
- packet-cgmp.c \
- packet-chdlc.c \
- packet-cisco-oui.c \
- packet-clearcase.c \
- packet-clip.c \
- packet-clnp.c \
- packet-cops.c \
- packet-cosine.c \
- packet-cpfi.c \
- packet-cpha.c \
- packet-cups.c \
- packet-data.c \
- packet-dccp.c \
- packet-dcerpc.c \
- packet-dcerpc-afs4int.c \
- packet-dcerpc-atsvc.c \
- packet-dcerpc-bossvr.c \
- packet-dcerpc-browser.c \
- packet-dcerpc-budb.c \
- packet-dcerpc-butc.c \
- packet-dcerpc-cds_clerkserver.c \
- packet-dcerpc-cds_solicit.c \
- packet-dcerpc-conv.c \
- packet-dcerpc-cprpc_server.c \
- packet-dcerpc-dce122.c \
- packet-dcerpc-dfs.c \
- packet-dcerpc-dnsserver.c \
- packet-dcerpc-drsuapi.c \
- packet-dcerpc-dtsprovider.c \
- packet-dcerpc-dtsstime_req.c \
- packet-dcerpc-epm.c \
- packet-dcerpc-epm4.c \
- packet-dcerpc-fldb.c \
- packet-dcerpc-ftserver.c \
- packet-dcerpc-icl_rpc.c \
- packet-dcerpc-initshutdown.c \
- packet-dcerpc-krb5rpc.c \
- packet-dcerpc-lsa.c \
- packet-dcerpc-lsa-ds.c \
- packet-dcerpc-mapi.c \
- packet-dcerpc-messenger.c \
- packet-dcerpc-mgmt.c \
- packet-dcerpc-ndr.c \
- packet-dcerpc-netlogon.c \
- packet-dcerpc-nspi.c \
- packet-dcerpc-oxid.c \
- packet-dcerpc-reg.c \
- packet-dcerpc-remact.c \
- packet-dcerpc-rep_proc.c \
- packet-dcerpc-roverride.c \
- packet-dcerpc-rpriv.c \
- packet-dcerpc-rs_acct.c \
- packet-dcerpc-rs_attr.c \
- packet-dcerpc-rs_bind.c \
- packet-dcerpc-rs_misc.c \
- packet-dcerpc-rs_plcy.c \
- packet-dcerpc-rs_pgo.c \
- packet-dcerpc-rs_prop_acct.c \
- packet-dcerpc-rs_repadm.c \
- packet-dcerpc-rs_replist.c \
- packet-dcerpc-rs_unix.c \
- packet-dcerpc-rsec_login.c \
- packet-dcerpc-samr.c \
- packet-dcerpc-secidmap.c \
- packet-dcerpc-spoolss.c \
- packet-dcerpc-srvsvc.c \
- packet-dcerpc-svcctl.c \
- packet-dcerpc-tapi.c \
- packet-dcerpc-tkn4int.c \
- packet-dcerpc-trksvr.c \
- packet-dcerpc-ubikdisk.c \
- packet-dcerpc-ubikvote.c \
- packet-dcerpc-update.c \
- packet-dcerpc-wkssvc.c \
- packet-ddtp.c \
- packet-dec-bpdu.c \
- packet-dhcpv6.c \
- packet-diameter.c \
- packet-diffserv-mpls-common.c \
- packet-distcc.c \
- packet-dlsw.c \
- packet-dns.c \
- packet-dsi.c \
- packet-dvmrp.c \
- packet-eap.c \
- packet-eapol.c \
- packet-echo.c \
- packet-edonkey.c \
- packet-eigrp.c \
- packet-enc.c \
- packet-enip.c \
- packet-esis.c \
- packet-eth.c \
- packet-etherip.c \
- packet-ethertype.c \
- packet-fc.c \
- packet-fcct.c \
- packet-fcdns.c \
- packet-fcels.c \
- packet-fcfcs.c \
- packet-fcfzs.c \
- packet-fcip.c \
- packet-fclctl.c \
- packet-fcp.c \
- packet-fcsb3.c \
- packet-fcsp.c \
- packet-fcswils.c \
- packet-fddi.c \
- packet-fix.c \
- packet-fr.c \
- packet-frame.c \
- packet-ftp.c \
- packet-fw1.c \
- packet-giop.c \
- packet-gmrp.c \
- packet-gnutella.c \
- packet-gprs-ns.c \
- packet-gre.c \
- packet-gsm_a.c \
- packet-gsm_map.c \
- packet-gsm_sms.c \
- packet-gssapi.c \
- packet-gtp.c \
- packet-gvrp.c \
- packet-h1.c \
- packet-h225.c \
- packet-h245.c \
- packet-h261.c \
- packet-h263.c \
- packet-h450.c \
- packet-hclnfsd.c \
- packet-hpext.c \
- packet-hsrp.c \
- packet-http.c \
- packet-hyperscsi.c \
- packet-iapp.c \
- packet-ib.c \
- packet-icap.c \
- packet-icmpv6.c\
- packet-icp.c \
- packet-icq.c \
- packet-ieee80211.c \
- packet-ieee8023.c \
- packet-igap.c \
- packet-igmp.c \
- packet-igrp.c \
- packet-image-gif.c \
- packet-image-jfif.c \
- packet-imap.c \
- packet-ip.c \
- packet-ipfc.c \
- packet-ipmi.c \
- packet-ipp.c \
- packet-ipsec.c \
- packet-ipsec-udp.c \
- packet-ipv6.c \
- packet-ipx.c \
- packet-ipxwan.c \
- packet-irc.c \
- packet-isakmp.c\
- packet-iscsi.c \
- packet-isdn.c \
- packet-isis.c \
- packet-isis-clv.c \
- packet-isis-hello.c \
- packet-isis-lsp.c \
- packet-isis-snp.c \
- packet-isl.c \
- packet-ismp.c \
- packet-isns.c \
- packet-isup.c \
- packet-iua.c \
- packet-jabber.c \
- packet-kadm5.c \
- packet-kerberos.c \
- packet-klm.c \
- packet-kpasswd.c \
- packet-l2tp.c \
- packet-lapb.c \
- packet-lapbether.c \
- packet-lapd.c \
- packet-laplink.c \
- packet-ldap.c \
- packet-ldp.c \
- packet-llc.c \
- packet-lmi.c \
- packet-lmp.c \
- packet-lpd.c \
- packet-lwapp.c \
- packet-m2pa.c \
- packet-m2tp.c \
- packet-m2ua.c \
- packet-m3ua.c \
- packet-mbtcp.c \
- packet-mdshdr.c \
- packet-mip.c \
- packet-mip6.c \
- packet-mmse.c \
- packet-mount.c \
- packet-mpeg1.c \
- packet-mpls.c \
- packet-mrdisc.c \
- packet-msdp.c \
- packet-msn-messenger.c \
- packet-msnip.c \
- packet-msproxy.c \
- packet-mtp2.c \
- packet-mtp3.c \
- packet-mtp3mg.c \
- packet-multipart.c \
- packet-mysql.c \
- packet-nbipx.c \
- packet-nbns.c \
- packet-ncp.c \
- packet-ncp2222.c \
- packet-ndmp.c \
- packet-ndps.c \
- packet-netbios.c \
- packet-netflow.c \
- packet-nfs.c \
- packet-nfsacl.c \
- packet-nfsauth.c \
- packet-nisplus.c \
- packet-nlm.c \
- packet-nlsp.c \
- packet-nntp.c \
- packet-nt-oui.c \
- packet-nt-sonmp.c \
- packet-nt-tpcp.c \
- packet-ntlmssp.c \
- packet-ntp.c \
- packet-null.c \
- packet-olsr.c \
- packet-osi.c \
- packet-osi-options.c \
- packet-ospf.c \
- packet-pcnfsd.c \
- packet-per.c \
- packet-pflog.c \
- packet-pgm.c \
- packet-pim.c \
- packet-pop.c \
- packet-portmap.c \
- packet-ppp.c \
- packet-pppoe.c \
- packet-pptp.c \
- packet-pres.c \
- packet-prism.c \
- packet-q2931.c \
- packet-q931.c \
- packet-q933.c \
- packet-qllc.c \
- packet-quake.c \
- packet-quake2.c \
- packet-quake3.c \
- packet-quakeworld.c \
- packet-radius.c\
- packet-ranap.c \
- packet-raw.c \
- packet-rip.c \
- packet-ripng.c \
- packet-rlogin.c \
- packet-rmcp.c \
- packet-rmi.c \
- packet-rmp.c \
- packet-rpc.c \
- packet-rpl.c \
- packet-rquota.c \
- packet-rsh.c \
- packet-rstat.c \
- packet-rsvp.c \
- packet-rsync.c \
- packet-rtcp.c \
- packet-rtp.c \
- packet-rtp-events.c \
- packet-rtsp.c \
- packet-rwall.c \
- packet-rx.c \
- packet-sadmind.c \
- packet-sap.c \
- packet-sccp.c \
- packet-sccpmg.c \
- packet-scsi.c \
- packet-sctp.c \
- packet-sdlc.c \
- packet-sdp.c \
- packet-sebek.c \
- packet-ses.c \
- packet-sflow.c \
- packet-sip.c \
- packet-skinny.c \
- packet-slimp3.c \
- packet-sll.c \
- packet-slowprotocols.c \
- packet-smb.c \
- packet-smb-browse.c \
- packet-smb-common.c \
- packet-smb-logon.c \
- packet-smb-mailslot.c \
- packet-smb-pipe.c \
- packet-smb-sidsnooping.c \
- packet-smpp.c \
- packet-smtp.c \
- packet-sna.c \
- packet-snaeth.c \
- packet-snmp.c \
- packet-socks.c \
- packet-spnego.c \
- packet-spray.c \
- packet-srvloc.c \
- packet-sscop.c \
- packet-ssh.c \
- packet-ssl.c \
- packet-stat.c \
- packet-stat-notify.c \
- packet-stun.c \
- packet-sua.c \
- packet-syslog.c \
- packet-t38.c \
- packet-tacacs.c \
- packet-tcap.c \
- packet-tcp.c \
- packet-tds.c \
- packet-telnet.c\
- packet-teredo.c\
- packet-text-media.c \
- packet-tftp.c \
- packet-time.c \
- packet-tns.c \
- packet-tpkt.c \
- packet-tr.c \
- packet-trmac.c \
- packet-tsp.c \
- packet-tzsp.c \
- packet-ucp.c \
- packet-udp.c \
- packet-v120.c \
- packet-vines.c \
- packet-vj.c \
- packet-vlan.c \
- packet-vrrp.c \
- packet-vtp.c \
- packet-wap.c \
- packet-wbxml.c \
- packet-wccp.c \
- packet-wcp.c \
- packet-wfleet-hdlc.c \
- packet-who.c \
- packet-wlancap.c \
- packet-wsp.c \
- packet-wtls.c \
- packet-wtp.c \
- packet-x11.c \
- packet-x25.c \
- packet-x29.c \
- packet-xdmcp.c \
- packet-xot.c \
- packet-xyplex.c \
- packet-yhoo.c \
- packet-ymsg.c \
- packet-ypbind.c \
- packet-yppasswd.c \
- packet-ypserv.c \
- packet-ypxfr.c \
- packet-zebra.c
-
-DISSECTOR_OBJECTS = $(DISSECTOR_SRC:.c=.obj)
-
-TETHEREAL_TAP_SRC = \
- tap-ansi_astat.c \
- tap-bootpstat.c \
- tap-dcerpcstat.c \
- tap-gsm_astat.c \
- tap-h225counter.c \
- tap-h225rassrt.c \
- tap-httpstat.c \
- tap-iostat.c \
- tap-iousers.c \
- tap-mgcpstat.c \
- tap-protocolinfo.c \
- tap-protohierstat.c \
- tap-rpcstat.c \
- tap-rpcprogs.c \
- tap-smbsids.c \
- tap-smbstat.c \
- tap-wspstat.c
-
-TETHEREAL_TAP_OBJECTS = $(TETHEREAL_TAP_SRC:.c=.obj)
-
-DISSECTOR_SUPPORT_OBJECTS = \
- adler32.obj \
- afn.obj \
- asn1.obj \
- column.obj \
- crc32.obj \
- crypt-des.obj \
- crypt-md4.obj \
- crypt-md5.obj \
- crypt-rc4.obj \
- follow.obj \
- g711.obj \
- h225-persistentdata.obj \
- in_cksum.obj \
- ipproto.obj \
- packet-dcerpc-nt.obj \
- prefs.obj \
- ptvcursor.obj \
- reassemble.obj \
- req_resp_hdrs.obj \
- t35.obj \
- tap.obj \
- util.obj \
- xdlc.obj \
- xmlstub.obj
-
-ETHEREAL_COMMON_OBJECTS = \
- $(DISSECTOR_SUPPORT_OBJECTS) \
- capture_stop_conditions.obj \
- capture-wpcap.obj \
- cfile.obj \
- conditions.obj \
- disabled_protos.obj \
- getopt.obj \
- pcap-util.obj \
- print.obj \
- ps.obj \
- range.obj \
- register.obj \
- ringbuffer.obj \
- timestats.obj \
- version_info.obj
-
-ethereal_OBJECTS = \
- $(DISSECTOR_OBJECTS) \
- $(ETHEREAL_COMMON_OBJECTS) \
- capture.obj \
- file.obj \
- filters.obj \
- proto_hier_stats.obj \
- summary.obj
-
-tethereal_OBJECTS = \
- $(DISSECTOR_OBJECTS) \
- $(ETHEREAL_COMMON_OBJECTS) \
- $(TETHEREAL_TAP_OBJECTS) \
- tethereal-tap-register.obj \
- tethereal.obj
-
-dftest_OBJECTS = \
- $(DISSECTOR_OBJECTS) \
- $(DISSECTOR_SUPPORT_OBJECTS) \
- dftest.obj
-
-randpkt_OBJECTS = \
- randpkt.obj
+ $(CC) $(CVARSDLL) $(CFLAGS) -Fd.\ -c $<
+
+PLATFORM_SRC = capture-wpcap.c
+
+include Makefile.common
+
+include epan\Makefile.common
+
+BUILT_SOURCES = $(BUILT_SOURCES) \
+ svnversion.h
+
+DISSECTOR_SUPPORT_SRC = $(DISSECTOR_SUPPORT_SRC:../=)
+DISSECTOR_SUPPORT_OBJECTS = $(DISSECTOR_SUPPORT_SRC:.c=.obj)
+#DISSECTOR_SUPPORT_OBJECTS = $(DISSECTOR_SUPPORT_OBJECTS:../=)
+
+ethereal_OBJECTS = $(ethereal_SOURCES:.c=.obj)
+tethereal_OBJECTS = $(tethereal_SOURCES:.c=.obj)
+dftest_OBJECTS = $(dftest_SOURCES:.c=.obj)
+
+randpkt_OBJECTS = $(randpkt_SOURCES:.c=.obj)
EXTRA_OBJECTS = \
# snprintf.obj \
strptime.obj
ethereal_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
- gtk\libui.lib epan\ethereal.lib \
+ wsock32.lib user32.lib shell32.lib \
+ $(NET_SNMP_DIR)\win32\lib\release\netsnmp.lib \
+!IFDEF ENABLE_LIBETHEREAL
+ epan\libethereal.lib \
+!ELSE
+ epan\dissectors\dissectors.lib \
+ epan\ethereal.lib \
epan\dfilter\dfilter.lib epan\ftypes\ftypes.lib \
- wsock32.lib user32.lib \
- $(GTK_LIBS) \
$(ADNS_LIBS) \
$(PCRE_LIBS) \
- $(NET_SNMP_DIR)\win32\lib\netsnmp.lib
+ $(ZLIB_LIBS)
+!ENDIF
# $(PCAP_DIR)\lib\wpcap.lib
tethereal_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
- epan\ethereal.lib \
- epan\dfilter\dfilter.lib epan\ftypes\ftypes.lib \
wsock32.lib user32.lib \
$(GLIB_LIBS) \
+ $(NET_SNMP_DIR)\win32\lib\release\netsnmp.lib \
+!IFDEF ENABLE_LIBETHEREAL
+ epan\libethereal.lib \
+!ELSE
+ epan\dissectors\dissectors.lib \
+ epan\ethereal.lib \
+ epan\dfilter\dfilter.lib epan\ftypes\ftypes.lib \
$(ADNS_LIBS) \
$(PCRE_LIBS) \
- $(NET_SNMP_DIR)\win32\lib\netsnmp.lib
+ $(ZLIB_LIBS)
+!ENDIF
+
+capinfos_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
+ wsock32.lib user32.lib \
+ $(GLIB_LIBS)
editcap_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
wsock32.lib user32.lib \
wsock32.lib user32.lib \
$(GLIB_LIBS)
-dftest_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib epan\ethereal.lib \
- epan\dfilter\dfilter.lib epan\ftypes\ftypes.lib \
+dftest_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
wsock32.lib user32.lib \
- wiretap\wiretap-$(WTAP_VERSION).lib \
- $(GLIB_LIBS)
+ $(GLIB_LIBS) \
+ $(NET_SNMP_DIR)\win32\lib\release\netsnmp.lib \
+!IFDEF ENABLE_LIBETHEREAL
+ epan\libethereal.lib \
+!ELSE
+ epan\dissectors\dissectors.lib \
+ epan\ethereal.lib \
+ epan\dfilter\dfilter.lib epan\ftypes\ftypes.lib \
+ $(ADNS_LIBS) \
+ $(PCRE_LIBS) \
+ $(ZLIB_LIBS)
+!ENDIF
randpkt_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
user32.lib \
$(GLIB_LIBS) \
- $(NET_SNMP_DIR)\win32\lib\netsnmp.lib
+ $(NET_SNMP_DIR)\win32\lib\release\netsnmp.lib
-EXECUTABLES=ethereal.exe tethereal.exe editcap.exe mergecap.exe text2pcap.exe
+EXECUTABLES=ethereal.exe ethereal-gtk2.exe tethereal.exe \
+ capinfos.exe editcap.exe mergecap.exe text2pcap.exe
-RESOURCES=image\ethereal.res image\tethereal.res image\editcap.res image\mergecap.res image\text2pcap.res
+RESOURCES=image\ethereal.res image\libethereal.res image\tethereal.res \
+ image\capinfos.res image\editcap.res image\mergecap.res \
+ image\text2pcap.res image\wiretap.res
-all: tools wiretap gtk epan image $(EXECUTABLES) $(RESOURCES) doc
+all: config.h tools image wiretap epan $(EXECUTABLES) $(RESOURCES) doc
+
+packaging: all
+ cd packaging
+ cd nsis
+ nmake -f makefile.nmake
+ cd ..
+ cd ..
+
+separate_packaging: all
+ cd packaging
+ cd nsis
+!IFDEF GTK1_DIR
+ nmake -f makefile.nmake GTK1_ONLY="USE"
+!ENDIF
+!IFDEF GTK2_DIR
+ nmake -f makefile.nmake GTK2_ONLY="USE"
+!ENDIF
+ cd ..
+ cd ..
$(RESOURCES): image
wiretap\wiretap-$(WTAP_VERSION).lib: wiretap
-ethereal.exe : config.h $(ethereal_OBJECTS) $(EXTRA_OBJECTS) epan gtk image\ethereal.res wiretap\wiretap-$(WTAP_VERSION).lib gtk\libui.lib plugins
+!IFNDEF GTK1_DIR
+ethereal.exe :
+!ELSE
+ethereal.exe : config.h svnversion.h $(ethereal_OBJECTS) epan gtk image\ethereal.res wiretap\wiretap-$(WTAP_VERSION).lib gtk\libui.lib plugins
+ @echo Linking $@
+ $(LINK) @<<
+ /OUT:ethereal.exe $(guiflags) $(guilibsdll) $(LDFLAGS) /SUBSYSTEM:windows $(ethereal_LIBS) $(GTK1_LIBS) gtk\libui.lib $(ethereal_OBJECTS) image\ethereal.res
+<<
+!ENDIF
+
+!IFNDEF GTK2_DIR
+ethereal-gtk2.exe :
+!ELSE
+ethereal-gtk2.exe : config.h svnversion.h $(ethereal_OBJECTS) epan gtk2 image\ethereal.res wiretap\wiretap-$(WTAP_VERSION).lib gtk2.tmp\libui.lib plugins
+ @echo Linking $@
+ $(LINK) @<<
+ /OUT:ethereal-gtk2.exe $(guiflags) $(guilibsdll) $(LDFLAGS) /SUBSYSTEM:windows $(ethereal_LIBS) $(GTK2_LIBS) gtk2.tmp\libui.lib $(ethereal_OBJECTS) image\ethereal.res
+<<
+!ENDIF
+
+tethereal.exe : config.h svnversion.h $(tethereal_OBJECTS) epan image\tethereal.res wiretap\wiretap-$(WTAP_VERSION).lib plugins
@echo Linking $@
$(LINK) @<<
- /OUT:ethereal.exe $(guiflags) $(guilibsdll) $(LDFLAGS) /SUBSYSTEM:windows $(ethereal_LIBS) $(ethereal_OBJECTS) $(EXTRA_OBJECTS) image\ethereal.res
+ /OUT:tethereal.exe $(conflags) $(conlibsdll) $(LDFLAGS) /SUBSYSTEM:console $(tethereal_LIBS) $(tethereal_OBJECTS) image\tethereal.res
<<
-tethereal.exe : config.h $(tethereal_OBJECTS) $(EXTRA_OBJECTS) epan image\tethereal.res wiretap\wiretap-$(WTAP_VERSION).lib plugins
+capinfos.exe : config.h capinfos.obj getopt.obj wiretap\wiretap-$(WTAP_VERSION).lib image\capinfos.res
@echo Linking $@
$(LINK) @<<
- /OUT:tethereal.exe $(conflags) $(conlibsdll) $(LDFLAGS) /SUBSYSTEM:console $(tethereal_LIBS) $(tethereal_OBJECTS) $(EXTRA_OBJECTS) image\tethereal.res
+ /OUT:capinfos.exe $(conflags) $(conlibsdll) $(LDFLAGS) /SUBSYSTEM:console capinfos.obj getopt.obj $(capinfos_LIBS) image\capinfos.res
<<
editcap.exe : config.h editcap.obj getopt.obj wiretap\wiretap-$(WTAP_VERSION).lib image\editcap.res
/OUT:editcap.exe $(conflags) $(conlibsdll) $(LDFLAGS) /SUBSYSTEM:console editcap.obj getopt.obj $(editcap_LIBS) image\editcap.res
<<
-mergecap.exe : config.h mergecap.obj getopt.obj wiretap\wiretap-$(WTAP_VERSION).lib image\mergecap.res
+mergecap.exe : config.h svnversion.h mergecap.obj merge.obj getopt.obj wiretap\wiretap-$(WTAP_VERSION).lib image\mergecap.res
@echo Linking $@
$(LINK) @<<
- /OUT:mergecap.exe $(conflags) $(conlibsdll) $(LDFLAGS) /SUBSYSTEM:console mergecap.obj getopt.obj $(mergecap_LIBS) image\mergecap.res
+ /OUT:mergecap.exe $(conflags) $(conlibsdll) $(LDFLAGS) /SUBSYSTEM:console mergecap.obj merge.obj getopt.obj $(mergecap_LIBS) image\mergecap.res
<<
text2pcap.exe : config.h text2pcap.obj text2pcap-scanner.obj getopt.obj strptime.obj image\text2pcap.res
/OUT:text2pcap.exe $(conflags) $(conlibsdll) $(LDFLAGS) /SUBSYSTEM:console text2pcap.obj text2pcap-scanner.obj getopt.obj strptime.obj image\text2pcap.res
<<
-dftest.exe : $(dftest_OBJECTS) $(EXTRA_OBJECTS)
+dftest.exe : $(dftest_OBJECTS) epan
$(LINK) @<<
- /OUT:dftest.exe $(conflags) $(conlibsdll) $(LDFLAGS) /SUBSYSTEM:console $(dftest_LIBS) $(dftest_OBJECTS) $(EXTRA_OBJECTS)
+ /OUT:dftest.exe $(conflags) $(conlibsdll) $(LDFLAGS) /SUBSYSTEM:console $(dftest_LIBS) $(dftest_OBJECTS)
<<
-randpkt.exe : $(randpkt_OBJECTS) $(EXTRA_OBJECTS)
+randpkt.exe : $(randpkt_OBJECTS)
$(LINK) @<<
/OUT:randpkt.exe $(conflags) $(conlibsdll) $(LDFLAGS) /SUBSYSTEM:console $(randpkt_LIBS) $(randpkt_OBJECTS)
<<
sed -e s/@VERSION@/$(VERSION)/ \
-e "s/@HAVE_GNU_ADNS@/$(ADNS_CONFIG)/" \
-e "s/@HAVE_PCRE@/$(PCRE_CONFIG)/" \
+ -e "s/@HAVE_NETTLE@/$(NETTLE_CONFIG)/" \
-e "s/@HAVE_LIBZ@/$(ZLIB_CONFIG)/" \
-e "s/@HAVE_LIBPCAP@/$(WINPCAP_CONFIG)/" \
-e "s/@HAVE_PCAP_FINDALLDEVS@/$(PCAP_FINDALLDEVS_CONFIG)/" \
+ -e "s/@HAVE_PCAP_DATALINK_NAME_TO_VAL@/$(PCAP_DATALINK_NAME_TO_VAL_CONFIG)/" \
+ -e "s/@HAVE_PCAP_DATALINK_VAL_TO_NAME@/$(PCAP_DATALINK_VAL_TO_NAME_CONFIG)/" \
+ -e "s/@HAVE_LIBETHEREALDLL@/$(LIBETHEREAL_CONFIG)/" \
-e "s/@WPCAP_CONSTIFIED@/$(WPCAP_CONSTIFIED_CONFIG)/" \
< config.h.win32 > $@
ps.c : rdps.exe print.ps
rdps print.ps ps.c
-#
-# The header files listed here are built from x11-fields using Perl;
-# we declare a dependency here so that they get built.
-#
-packet-x11.obj : packet-x11.c x11-declarations.h x11-register-info.h
#
-# Build various header files for the X11 dissector.
+# Build the version string
#
-x11-declarations.h x11-register-info.h: x11-fields process-x11-fields.pl
- $(PERL) process-x11-fields.pl <x11-fields
-
-packet-ncp2222.c : ncp2222.py
-!IFDEF PYTHON
- @echo Making packet-ncp2222.c
- $(PYTHON) ncp2222.py -o packet-ncp2222.c
-!ELSE
- @echo Faking packet-ncp2222.c...
- @echo Python is required to build the NCP disector
- @echo Hiding packet-ncp.c...
- mv packet-ncp.c packet-ncp.c.save
- touch packet-ncp.c $@
-!ENDIF
+svnversion.h:
+ $(PERL) make-version.pl
#
-# Build "register.c", which contains a function "register_all_protocols()"
-# that calls the register routines for all protocols.
-#
-# We do this by grepping through sources. If that turns out to be too slow,
-# maybe we could just require every .o file to have an register routine
-# of a given name (packet-aarp.o -> proto_register_aarp, etc.).
-#
-# Formatting conventions: The name of the proto_register_* routines must
-# start in column zero, or must be preceded only by "void " starting in
-# column zero, and must not be inside #if.
-#
-# We assume that all dissector routines are in "packet-XXX.c" files.
-#
-# For some unknown reason, having a big "for" loop in the Makefile
-# to scan all the "packet-XXX.c" files doesn't work with some "make"s;
-# they seem to pass only the first few names in the list to the shell,
-# for some reason.
+# Build the short version of the authors file for the about dialog
#
-# Therefore, we have a script to generate the "register.c" file.
-#
-# The first argument is the name of the file to write.
-# The second argument is the directory in which the source files live.
-# All subsequent arguments are the files to scan.
+AUTHORS-SHORT: AUTHORS make-authors-short.pl
+ $(PERL) perlnoutf.pl make-authors-short.pl < AUTHORS > AUTHORS-SHORT
+
#
-# On Windows, however, that script runs slowly, as multiple greps
-# and seds are run for each input file, so, if Python is present
-# (as indicated by PYTHON being defined), we run a faster Python
-# script to do that work instead. That script doesn't take the name
-# of the file to write as an argument; it always writes to
-# "register.c".
+# Build the short version of the authors file with formatting codes for
+# the man page
#
-register.c: $(DISSECTOR_SRC)
-!IFDEF PYTHON
- @echo Making register.c (using python)
- @$(PYTHON) make-reg-dotc.py . $(DISSECTOR_SRC)
-!ELSE
- @echo Making register.c (using sh)
- @$(SH) make-reg-dotc register.c . $(DISSECTOR_SRC)
-!ENDIF
+AUTHORS-SHORT-FORMAT: AUTHORS-SHORT make-authors-format.pl
+ $(PERL) perlnoutf.pl make-authors-format.pl < AUTHORS-SHORT > AUTHORS-SHORT-FORMAT
#
# Build "tethereal-tap-register.c", which contains a function
text2pcap-scanner.c : text2pcap-scanner.l
$(LEX) -otext2pcap-scanner.c text2pcap-scanner.l
-clean:
+gtk2_distclean:
+ rm -f gtk2.tmp/*.*
+ if exist gtk2.tmp rmdir gtk2.tmp
+
+clean: gtk2_distclean
rm -f $(ethereal_OBJECTS) $(tethereal_OBJECTS) $(EXTRA_OBJECTS) \
$(EXECUTABLES) $(PDB_FILE) \
- editcap.obj mergecap.obj text2pcap.obj \
+ capinfos.obj editcap.obj mergecap.obj text2pcap.obj getopt.obj\
text2pcap-scanner.obj text2pcap-scanner.c rdps.obj \
- rdps.pdb config.h ps.c \
- rdps.exe rdps.ilk dftest.obj dftest.exe randpkt.obj randpkt.ext \
+ rdps.pdb rdps.exe rdps.ilk config.h ps.c AUTHORS-SHORT \
+ AUTHORS-SHORT-FORMAT \
+ dftest.obj dftest.exe randpkt.obj randpkt.ext doxygen.cfg \
$(RESOURCES)
cd wiretap
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
# Call distclean only, if you would like to remove ALL generated files.
# Be sure to have python and perl installed to regenerate them.
-distclean: clean
- rm -f x11-declarations.h x11-register-info.h packet-ncp2222.c \
- register.c tethereal-tap-register.c
+distclean: clean gtk2_distclean
+ rm -f $(BUILT_SOURCES) \
+ tethereal-tap-register.c
cd wiretap
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
cd ../gtk
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake
cd ..
-gtk:: help config.h
+gtk:: help config.h svnversion.h AUTHORS-SHORT doxygen
cd gtk
- $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake
+ $(MAKE) /$(MAKEFLAGS) /f Makefile.nmake GTK_CFLAGS="$(GTK1_CFLAGS)" GTK_LIBS="$(GTK1_LIBS)" libui.lib
+ cd ..
+
+# copy all required files to gtk2.tmp (but only when newer than existing) and compile in that dir
+gtk2:: help config.h svnversion.h AUTHORS-SHORT
+ if not exist gtk2.tmp mkdir gtk2.tmp
+ cd gtk
+ cp --update --preserve Makefile.* *.c *.h ..\gtk2.tmp
+ cd ..\gtk2.tmp
+ $(MAKE) /$(MAKEFLAGS) /f Makefile.nmake GTK_CFLAGS="$(GTK2_CFLAGS)" GTK_LIBS="$(GTK2_LIBS)" libui.lib
cd ..
-epan::
+epan:: $(DISSECTOR_SUPPORT_OBJECTS) $(EXTRA_OBJECTS) $(RESOURCES) $(BUILT_SOURCES) doxygen
cd epan
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake
cd ..
cd help
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake
cd ..
+
+doxygen.cfg: config.nmake doxygen.cfg.in
+ sed -e s/@VERSION@/$(VERSION)/ \
+ < doxygen.cfg.in > $@
+
+doxygen-run:
+!IFDEF DOXYGEN
+ $(DOXYGEN) doxygen.cfg
+!ENDIF
+
+doxygen: doxygen.cfg doxygen-run
+
+REQUIRED_TOOLS=\
+ $(SH) \
+ $(YACC) \
+ $(LEX) \
+ grep \
+ $(PERL) \
+ $(PYTHON) \
+ sed \
+ unzip \
+ wget
+
+verify_tools:
+ @$(SH) tools\win32-setup.sh --appverify $(REQUIRED_TOOLS)
+
+# Download and install all the required libraries into ETHEREAL_LIBS.
+# If you used this setup target before, consider doing a clean_setup.
+setup: verify_tools
+!IF "$(GTK2_INST_VERSION)" == "2.4"
+ @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
+ glib gtk2.4/glib-2.4.7.zip
+ @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
+ glib gtk2.4/glib-dev-2.4.7.zip
+!ELSE
+ @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
+ glib glib-2.2.3-20040116.zip
+ @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
+ glib glib-dev-2.2.3-20040116.zip
+!ENDIF
+!IFDEF GTK1_DIR
+ @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
+ gtk+ gtk+-1.3.0-20030717.zip
+ @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
+ gtk+ gtk+-dev-1.3.0-20030115.zip
+!ENDIF
+ @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
+ libiconv-1.9.1.bin.woe32 libiconv-1.9.1.bin.woe32.zip
+ @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
+ gettext-runtime-0.13.1 gettext-runtime-0.13.1.zip
+!IFDEF NET_SNMP_DIR
+ @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
+ . net-snmp-5.1.2.zip
+!ENDIF
+!IFDEF PCAP_DIR
+ @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
+ . wpdpack_3_0.zip
+!ENDIF
+!IFDEF ADNS_DIR
+ @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
+ . adns-1.0-win32-04.zip
+!ENDIF
+!IFDEF PCRE_DIR
+ @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
+ . pcre-4.4.zip
+!ENDIF
+!IFDEF ZLIB_DIR
+ @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
+ zlib121-dll zlib121-dll.zip
+!ENDIF
+!IFDEF GTK2_DIR
+!IF "$(GTK2_INST_VERSION)" == "2.4"
+ @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
+ gtk2 gtk2.4/gtk+-2.4.10-20041001.zip
+ @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
+ gtk2 gtk2.4/gtk+-dev-2.4.10.zip
+ @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
+ gtk2 gtk2.4/atk-1.6.0.zip
+ @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
+ gtk2 gtk2.4/atk-dev-1.6.0.zip
+!ELSE
+ @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
+ gtk2 gtk2/gtk+-2.2.4-20040124.zip
+ @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
+ gtk2 gtk2/gtk+-dev-2.2.4-20040124.zip
+ @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
+ gtk2 gtk2/atk-1.4.0.zip
+ @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
+ gtk2 gtk2/atk-dev-1.4.0.zip
+!ENDIF
+!IF "$(PANGO_INST_VERSION)" == "1.4"
+ @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
+ gtk2 gtk2.4/pango-1.4.1.zip
+ @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
+ gtk2 gtk2.4/pango-dev-1.4.1.zip
+!ELSE
+ @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
+ gtk2 gtk2/pango-1.2.5-20040124.zip
+ @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
+ gtk2 gtk2/pango-dev-1.2.5-20040124.zip
+!ENDIF
+!ENDIF
+!IFDEF GTK_WIMP_DIR
+ @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
+ gtk-wimp gtk-wimp/gtk-wimp-0.6.2-bin.zip
+!ENDIF
+ @echo.
+ @echo Ethereal is ready to build.
+
+# Cleanup files installed by the setup target. It will not remove the
+# downloaded zip files.
+clean_setup:
+ rm -r -f $(ETHEREAL_LIBS)/glib
+ rm -r -f $(ETHEREAL_LIBS)/gtk+
+ rm -r -f $(ETHEREAL_LIBS)/libiconv-1.9.1.bin.woe32
+ rm -r -f $(ETHEREAL_LIBS)/gettext-runtime-0.13.1
+ rm -r -f $(ETHEREAL_LIBS)/zlib121-dll
+ rm -r -f $(ETHEREAL_LIBS)/gtk2
+ rm -r -f $(ETHEREAL_LIBS)/gtk-wimp
+
+update_plugin_api: config.h
+ cd plugins
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake xyzzy
+ cd ..
+