xref: /libbtbb/wireshark/plugins-legacy/btle/Makefile.nmake (revision e018180df8c9bd1ca869d5329a027253be1a76ec)
1*e018180dSDominic Spill# Makefile.nmake
2*e018180dSDominic Spill# nmake file for Wireshark plugin
3*e018180dSDominic Spill#
4*e018180dSDominic Spill# $Id: Makefile.nmake 24520 2008-03-01 12:31:01Z jake $
5*e018180dSDominic Spill#
6*e018180dSDominic Spill
7*e018180dSDominic Spillinclude ..\..\config.nmake
8*e018180dSDominic Spillinclude moduleinfo.nmake
9*e018180dSDominic Spill
10*e018180dSDominic Spillinclude Makefile.common
11*e018180dSDominic Spill
12*e018180dSDominic SpillCFLAGS=/WX /DHAVE_CONFIG_H /I../.. /I../../wiretap $(GLIB_CFLAGS) \
13*e018180dSDominic Spill	/I$(PCAP_DIR)\include -D_U_="" $(LOCAL_CFLAGS)
14*e018180dSDominic Spill
15*e018180dSDominic Spill.c.obj::
16*e018180dSDominic Spill	$(CC) $(CFLAGS) -Fd.\ -c $<
17*e018180dSDominic Spill
18*e018180dSDominic SpillLDFLAGS = $(PLUGIN_LDFLAGS)
19*e018180dSDominic Spill
20*e018180dSDominic Spill!IFDEF ENABLE_LIBWIRESHARK
21*e018180dSDominic SpillLINK_PLUGIN_WITH=..\..\epan\libwireshark.lib
22*e018180dSDominic SpillCFLAGS=/DHAVE_WIN32_LIBWIRESHARK_LIB /D_NEED_VAR_IMPORT_ $(CFLAGS)
23*e018180dSDominic Spill
24*e018180dSDominic SpillDISSECTOR_OBJECTS = $(DISSECTOR_SRC:.c=.obj)
25*e018180dSDominic Spill
26*e018180dSDominic SpillDISSECTOR_SUPPORT_OBJECTS = $(DISSECTOR_SUPPORT_SRC:.c=.obj)
27*e018180dSDominic Spill
28*e018180dSDominic SpillOBJECTS = $(DISSECTOR_OBJECTS) $(DISSECTOR_SUPPORT_OBJECTS) plugin.obj
29*e018180dSDominic Spill
30*e018180dSDominic SpillRESOURCE=$(PLUGIN_NAME).res
31*e018180dSDominic Spill
32*e018180dSDominic Spillall: $(PLUGIN_NAME).dll
33*e018180dSDominic Spill
34*e018180dSDominic Spill$(PLUGIN_NAME).rc : moduleinfo.nmake
35*e018180dSDominic Spill	sed -e s/@PLUGIN_NAME@/$(PLUGIN_NAME)/ \
36*e018180dSDominic Spill	-e s/@RC_MODULE_VERSION@/$(RC_MODULE_VERSION)/ \
37*e018180dSDominic Spill	-e s/@RC_VERSION@/$(RC_VERSION)/ \
38*e018180dSDominic Spill	-e s/@MODULE_VERSION@/$(MODULE_VERSION)/ \
39*e018180dSDominic Spill	-e s/@PACKAGE@/$(PACKAGE)/ \
40*e018180dSDominic Spill	-e s/@VERSION@/$(VERSION)/ \
41*e018180dSDominic Spill	-e s/@MSVC_VARIANT@/$(MSVC_VARIANT)/ \
42*e018180dSDominic Spill	< plugin.rc.in > $@
43*e018180dSDominic Spill
44*e018180dSDominic Spill$(PLUGIN_NAME).dll $(PLUGIN_NAME).exp $(PLUGIN_NAME).lib : $(OBJECTS) $(LINK_PLUGIN_WITH) $(RESOURCE)
45*e018180dSDominic Spill	link -dll /out:$(PLUGIN_NAME).dll $(LDFLAGS) $(OBJECTS) $(LINK_PLUGIN_WITH) \
46*e018180dSDominic Spill	$(GLIB_LIBS) $(RESOURCE)
47*e018180dSDominic Spill
48*e018180dSDominic Spill#
49*e018180dSDominic Spill# Build plugin.c, which contains the plugin version[] string, a
50*e018180dSDominic Spill# function plugin_register() that calls the register routines for all
51*e018180dSDominic Spill# protocols, and a function plugin_reg_handoff() that calls the handoff
52*e018180dSDominic Spill# registration routines for all protocols.
53*e018180dSDominic Spill#
54*e018180dSDominic Spill# We do this by scanning sources.  If that turns out to be too slow,
55*e018180dSDominic Spill# maybe we could just require every .o file to have an register routine
56*e018180dSDominic Spill# of a given name (packet-aarp.o -> proto_register_aarp, etc.).
57*e018180dSDominic Spill#
58*e018180dSDominic Spill# Formatting conventions:  The name of the proto_register_* routines an
59*e018180dSDominic Spill# proto_reg_handoff_* routines must start in column zero, or must be
60*e018180dSDominic Spill# preceded only by "void " starting in column zero, and must not be
61*e018180dSDominic Spill# inside #if.
62*e018180dSDominic Spill#
63*e018180dSDominic Spill# DISSECTOR_SRC is assumed to have all the files that need to be scanned.
64*e018180dSDominic Spill#
65*e018180dSDominic Spill# For some unknown reason, having a big "for" loop in the Makefile
66*e018180dSDominic Spill# to scan all the files doesn't work with some "make"s; they seem to
67*e018180dSDominic Spill# pass only the first few names in the list to the shell, for some
68*e018180dSDominic Spill# reason.
69*e018180dSDominic Spill#
70*e018180dSDominic Spill# Therefore, we have a script to generate the plugin.c file.
71*e018180dSDominic Spill# The shell script runs slowly, as multiple greps and seds are run
72*e018180dSDominic Spill# for each input file; this is especially slow on Windows.  Therefore,
73*e018180dSDominic Spill# if Python is present (as indicated by PYTHON being defined), we run
74*e018180dSDominic Spill# a faster Python script to do that work instead.
75*e018180dSDominic Spill#
76*e018180dSDominic Spill# The first argument is the directory in which the source files live.
77*e018180dSDominic Spill# The second argument is "plugin", to indicate that we should build
78*e018180dSDominic Spill# a plugin.c file for a plugin.
79*e018180dSDominic Spill# All subsequent arguments are the files to scan.
80*e018180dSDominic Spill#
81*e018180dSDominic Spill!IFDEF PYTHON
82*e018180dSDominic Spillplugin.c: $(DISSECTOR_SRC) moduleinfo.h ../../tools/make-dissector-reg.py
83*e018180dSDominic Spill	@echo Making plugin.c (using python)
84*e018180dSDominic Spill	@$(PYTHON) "../../tools/make-dissector-reg.py" . plugin $(DISSECTOR_SRC)
85*e018180dSDominic Spill!ELSE
86*e018180dSDominic Spillplugin.c: $(DISSECTOR_SRC) moduleinfo.h ../../tools/make-dissector-reg
87*e018180dSDominic Spill	@echo Making plugin.c (using sh)
88*e018180dSDominic Spill	@$(SH) ../../tools/make-dissector-reg . plugin $(DISSECTOR_SRC)
89*e018180dSDominic Spill!ENDIF
90*e018180dSDominic Spill
91*e018180dSDominic Spill!ENDIF
92*e018180dSDominic Spill
93*e018180dSDominic Spillclean:
94*e018180dSDominic Spill	rm -f $(OBJECTS) $(RESOURCE) plugin.c *.pdb \
95*e018180dSDominic Spill	    $(PLUGIN_NAME).dll $(PLUGIN_NAME).dll.manifest $(PLUGIN_NAME).lib \
96*e018180dSDominic Spill	    $(PLUGIN_NAME).exp $(PLUGIN_NAME).rc
97*e018180dSDominic Spill
98*e018180dSDominic Spilldistclean: clean
99*e018180dSDominic Spill
100*e018180dSDominic Spillmaintainer-clean: distclean
101