UPS: apcupsd clean sources
[tomato.git] / release / src / router / apcupsd / src / win32 / Makefile.in
blobb249ebee0ce47ffcad8844942325b9cf51e213d6
2 # Makefile for win32 apcupsd executables
3 # Using MinGW cross-compiler on GNU/Linux
4 #
5 # Modified from Bacula Makefile.in for apcupsd
6 # Kern Sibbald, April 2006
7 # Further modifications by Adam Kropelin
8 #
10 # Configuration
11 VERSION = @VERSION@
13 PARENT_DIR = @TOP_DIR@
14 TOPDIR = @topdir@
15 CROSSTOOLS = $(PARENT_DIR)/cross-tools
16 MINGW = $(CROSSTOOLS)/mingw32
17 INCLUDE_MINGW = -I $(MINGW)/mingw32/include
18 INCLUDE_GCC = -I $(MINGW)/lib/gcc/mingw32/3.4.5/include
20 # By default we will use the winusb driver
21 # The other option is generic
22 USBTYPE ?= winusb
24 DEPKGS = $(PARENT_DIR)/depkgs-win32/libroot
26 INCLUDE_APC = -I ../../include -I ./compat
27 INCLUDE_PTHREADS = -I $(DEPKGS)/include/pthread
28 INCLUDE_LIBUSB = -I $(DEPKGS)/include
29 INCLUDE_NETSNMP = -I $(DEPKGS)/include/net-snmp
30 INCLUDE_LIBUSBHID = -I ../libusbhid
31 INCLUDE_ICONS = -I .
33 LIB_MINGW = $(MINGW)/mingw32/lib
34 LIB_PTHREADS = $(DEPKGS)/lib/pthreadGCE.dll
35 LIB_NETSNMP = $(DEPKGS)/lib/libnetsnmp.a
37 ifeq ($(USBTYPE),generic)
38 LIB_LIBUSB = $(DEPKGS)/lib/libusb.a
39 else
40 LIB_LIBUSB = -lsetupapi
41 endif
43 BIN_DIR = $(MINGW)/bin
45 INCLUDES = \
46 $(INCLUDE_GCC) \
47 $(INCLUDE_MINGW) \
48 $(INCLUDE_PTHREADS) \
49 $(INCLUDE_LIBUSB) \
50 $(INCLUDE_APC) \
51 $(INCLUDE_ICONS) \
52 $(INCLUDE_LIBUSBHID) \
53 $(INCLUDE_NETSNMP)
55 HAVES = \
56 -DHAVE_MINGW \
57 -DHAVE_WIN32 \
58 -DHAVE_NET_DRIVER \
59 -DHAVE_TEST_DRIVER \
60 -DHAVE_APCSMART_DRIVER \
61 -DHAVE_DUMB_DRIVER \
62 -DHAVE_USB_DRIVER \
63 -DHAVE_SNMP_DRIVER \
64 -DHAVE_NET_SNMP \
65 -DHAVE_PCNET_DRIVER \
66 -DHAVE_SNMPLITE_DRIVER
68 DEFINES = \
69 -DWIN32 \
70 $(HAVES) \
71 -D__APCUPSD__ \
72 -D_WIN32_IE=0x0500
74 CC = $(BIN_DIR)/mingw32-gcc -O2 $(DEFINES) $(INCLUDES)
75 CXX = $(BIN_DIR)/mingw32-g++ -O2 $(DEFINES) $(INCLUDES)
76 WINDRES = $(BIN_DIR)/mingw32-windres
77 MAKENSIS = $(BIN_DIR)/makensis
78 STRIP = $(BIN_DIR)/mingw32-strip
79 UNIX2DOS = unix2dos
81 TEXTFILES := $(TOPDIR)/COPYING \
82 $(TOPDIR)/ChangeLog \
83 $(TOPDIR)/ReleaseNotes \
84 $(wildcard $(TOPDIR)/doc/*.txt)
86 first: all
88 OBJDIR = obj
90 ######################################################################
92 # Files in src/win32/compat
94 OBJS_COMPAT = \
95 $(OBJDIR)/compat.o \
96 $(OBJDIR)/winapi.o \
97 $(OBJDIR)/netcompat.o
99 $(OBJDIR)/compat.o: compat/compat.cpp
100 $(CXX) -c $< -o $@
102 $(OBJDIR)/winapi.o: compat/winapi.c
103 $(CXX) -c $< -o $@
105 $(OBJDIR)/netcompat.o: compat/netcompat.c
106 $(CXX) -c $< -o $@
108 ######################################################################
110 # Files in src/win32
111 OBJS_WIN = \
112 $(OBJDIR)/winservice.o \
113 $(OBJDIR)/winmain.o
115 $(OBJDIR)/winmain.o: winmain.cpp
116 $(CXX) -c $< -o $@
118 $(OBJDIR)/winservice.o: winservice.cpp
119 $(CXX) -c $< -o $@
121 ######################################################################
124 # Files files in src/lib
126 LIB_OBJS = \
127 $(OBJDIR)/apcconfig.o \
128 $(OBJDIR)/apcerror.o \
129 $(OBJDIR)/apcevents.o \
130 $(OBJDIR)/apcexec.o \
131 $(OBJDIR)/apcfile.o \
132 $(OBJDIR)/apclibnis.o \
133 $(OBJDIR)/apclock.o \
134 $(OBJDIR)/apclog.o \
135 $(OBJDIR)/apcsignal.o \
136 $(OBJDIR)/apcstatus.o \
137 $(OBJDIR)/asys.o \
138 $(OBJDIR)/newups.o \
139 $(OBJDIR)/md5.o \
140 $(OBJDIR)/sleep.o \
141 $(OBJDIR)/inet_pton.o \
142 $(OBJDIR)/statmgr.o \
143 $(OBJDIR)/amutex.o \
144 $(OBJDIR)/athread.o \
145 $(OBJDIR)/astring.o \
146 $(OBJDIR)/atimer.o \
147 $(OBJDIR)/autil.o \
148 $(OBJDIR)/gethostname.o
151 # Rules for generating from ../lib
154 $(OBJDIR)/apcconfig.o: ../lib/apcconfig.c
155 $(CXX) -c $< -o $@
157 $(OBJDIR)/apcerror.o: ../lib/apcerror.c
158 $(CXX) -c $< -o $@
160 $(OBJDIR)/apcevents.o: ../lib/apcevents.c
161 $(CXX) -c $< -o $@
163 $(OBJDIR)/apcexec.o: ../lib/apcexec.c
164 $(CXX) -c $< -o $@
166 $(OBJDIR)/apcfile.o: ../lib/apcfile.c
167 $(CXX) -c $< -o $@
169 $(OBJDIR)/apclibnis.o: ../lib/apclibnis.c
170 $(CXX) -c $< -o $@
172 $(OBJDIR)/apclock.o: ../lib/apclock.c
173 $(CXX) -c $< -o $@
175 $(OBJDIR)/apclog.o: ../lib/apclog.c
176 $(CXX) -c $< -o $@
178 $(OBJDIR)/apcsignal.o: ../lib/apcsignal.c
179 $(CXX) -c $< -o $@
181 $(OBJDIR)/apcstatus.o: ../lib/apcstatus.c
182 $(CXX) -c $< -o $@
184 $(OBJDIR)/asys.o: ../lib/asys.c
185 $(CXX) -c $< -o $@
187 $(OBJDIR)/newups.o: ../lib/newups.c
188 $(CXX) -c $< -o $@
190 $(OBJDIR)/md5.o: ../lib/md5.c
191 $(CXX) -c $< -o $@
193 $(OBJDIR)/sleep.o: ../lib/sleep.c
194 $(CXX) -c $< -o $@
196 $(OBJDIR)/inet_pton.o: ../lib/inet_pton.c
197 $(CXX) -c $< -o $@
199 $(OBJDIR)/statmgr.o: ../lib/statmgr.cpp
200 $(CXX) -c $< -o $@
202 $(OBJDIR)/amutex.o: ../lib/amutex.cpp
203 $(CXX) -c $< -o $@
205 $(OBJDIR)/athread.o: ../lib/athread.cpp
206 $(CXX) -c $< -o $@
208 $(OBJDIR)/astring.o: ../lib/astring.cpp
209 $(CXX) -c $< -o $@
211 $(OBJDIR)/atimer.o: ../lib/atimer.cpp
212 $(CXX) -c $< -o $@
214 $(OBJDIR)/autil.o: ../lib/autil.cpp
215 $(CXX) -c $< -o $@
217 $(OBJDIR)/gethostname.o: ../lib/gethostname.c
218 $(CXX) -c $< -o $@
220 ######################################################################
222 # Files in src/drivers
223 OBJS_DRIVERS = \
224 $(OBJDIR)/drivers.o
226 $(OBJDIR)/drivers.o: ../drivers/drivers.c
227 $(CXX) -c $< -o $@
229 ######################################################################
231 # Files in src/drivers/test
232 OBJS_TESTDRV = \
233 $(OBJDIR)/testdriver.o
235 $(OBJDIR)/testdriver.o: ../drivers/test/testdriver.c
236 $(CXX) -c $< -o $@
238 ######################################################################
240 # Files in src/drivers/pcnet
241 OBJS_PCNETDRV = \
242 $(OBJDIR)/pcnet.o
244 $(OBJDIR)/pcnet.o: ../drivers/pcnet/pcnet.c
245 $(CXX) -c $< -o $@
247 ######################################################################
249 # Files in src/drivers/net
250 OBJS_NETDRV = \
251 $(OBJDIR)/net.o
253 $(OBJDIR)/net.o: ../drivers/net/net.c
254 $(CXX) -c $< -o $@
256 ######################################################################
258 # Files in src/drivers/apcsmart
259 OBJS_SMARTDRV = \
260 $(OBJDIR)/smart.o \
261 $(OBJDIR)/smartoper.o \
262 $(OBJDIR)/smartsetup.o \
263 $(OBJDIR)/smartsetup2.o \
264 $(OBJDIR)/smarteeprom.o
266 $(OBJDIR)/smart.o: ../drivers/apcsmart/smart.c
267 $(CXX) -c $< -o $@
269 $(OBJDIR)/smartoper.o: ../drivers/apcsmart/smartoper.c
270 $(CXX) -c $< -o $@
272 $(OBJDIR)/smartsetup.o: ../drivers/apcsmart/smartsetup.c
273 $(CXX) -c $< -o $@
275 $(OBJDIR)/smartsetup2.o: ../drivers/apcsmart/smartsetup2.c
276 $(CXX) -c $< -o $@
278 $(OBJDIR)/smarteeprom.o: ../drivers/apcsmart/smarteeprom.c
279 $(CXX) -c $< -o $@
281 ######################################################################
283 # Files in src/drivers/dumb
284 OBJS_DUMBDRV = \
285 $(OBJDIR)/dumboper.o \
286 $(OBJDIR)/dumbsetup.o
288 $(OBJDIR)/dumboper.o: ../drivers/dumb/dumboper.c
289 $(CXX) -c $< -o $@
291 $(OBJDIR)/dumbsetup.o: ../drivers/dumb/dumbsetup.c
292 $(CXX) -c $< -o $@
294 ######################################################################
296 # Files needed for usb driver
298 OBJS_USBDRV := \
299 $(OBJDIR)/generic-usb.o \
300 $(OBJDIR)/usb.o \
301 $(OBJDIR)/hidutils.o \
302 $(OBJDIR)/data.o \
303 $(OBJDIR)/parse.o \
304 $(OBJDIR)/descr.o
307 # DIRTY UGLY HACK ALERT! libusb.h should be generated by ./configure,
308 # but we're not running configure for mingw32 build yet so we fake it
309 # with echo.
311 ifeq ($(USBTYPE),generic)
312 $(OBJDIR)/generic-usb.o: ../drivers/usb/generic/generic-usb.c
313 echo "#include \"$(DEPKGS)/include/usb.h\"" > ../drivers/usb/generic/libusb.h
314 $(CXX) -c $< -o $@
315 else
316 OBJS_USBDRV += $(OBJDIR)/libusb-winusb-bridge.o
318 $(OBJDIR)/generic-usb.o: ../drivers/usb/generic/generic-usb.c
319 echo "#include \"libusb-winusb-bridge.h\"" > ../drivers/usb/generic/libusb.h
320 $(CXX) -c $< -o $@
322 $(OBJDIR)/libusb-winusb-bridge.o: libusb-winusb-bridge.c
323 $(CXX) -c $< -o $@
324 endif
326 $(OBJDIR)/hidutils.o: ../drivers/usb/generic/hidutils.c
327 $(CXX) -c $< -o $@
329 $(OBJDIR)/usb.o: ../drivers/usb/usb.c
330 $(CXX) -c $< -o $@
332 $(OBJDIR)/data.o: ../libusbhid/data.c
333 $(CXX) -c $< -o $@
335 $(OBJDIR)/parse.o: ../libusbhid/parse.c
336 $(CXX) -c $< -o $@
338 $(OBJDIR)/descr.o: ../libusbhid/descr.c
339 $(CXX) -c $< -o $@
341 ######################################################################
343 # Files in src/drivers/snmp
344 OBJS_SNMPDRV = \
345 $(OBJDIR)/drv_powernet.o \
346 $(OBJDIR)/drv_rfc1628.o \
347 $(OBJDIR)/powernet-mib-mgr.o \
348 $(OBJDIR)/rfc1628-mib-mgr.o \
349 $(OBJDIR)/snmp.o
351 $(OBJDIR)/drv_powernet.o: ../drivers/snmp/drv_powernet.c
352 $(CXX) -c $< -o $@
354 $(OBJDIR)/drv_rfc1628.o: ../drivers/snmp/drv_rfc1628.c
355 $(CXX) -c $< -o $@
357 $(OBJDIR)/powernet-mib-mgr.o: ../drivers/snmp/powernet-mib-mgr.c
358 $(CXX) -c $< -o $@
360 $(OBJDIR)/rfc1628-mib-mgr.o: ../drivers/snmp/rfc1628-mib-mgr.c
361 $(CXX) -c $< -o $@
363 $(OBJDIR)/snmp.o: ../drivers/snmp/snmp.c
364 $(CXX) -c $< -o $@
366 ######################################################################
368 # Files in src/drivers/snmplite
369 OBJS_SNMPLITEDRV = \
370 $(OBJDIR)/snmplite.o \
371 $(OBJDIR)/mibs.o \
372 $(OBJDIR)/apc-mib.o \
373 $(OBJDIR)/rfc1628-mib.o \
374 $(OBJDIR)/mge-mib.o \
375 $(OBJDIR)/asn.o \
376 $(OBJDIR)/snmpeng.o
378 $(OBJDIR)/snmplite.o: ../drivers/snmplite/snmplite.cpp
379 $(CXX) -c $< -o $@
381 $(OBJDIR)/mibs.o: ../drivers/snmplite/mibs.cpp
382 $(CXX) -c $< -o $@
384 $(OBJDIR)/apc-mib.o: ../drivers/snmplite/apc-mib.cpp
385 $(CXX) -c $< -o $@
387 $(OBJDIR)/rfc1628-mib.o: ../drivers/snmplite/rfc1628-mib.cpp
388 $(CXX) -c $< -o $@
390 $(OBJDIR)/mge-mib.o: ../drivers/snmplite/mge-mib.cpp
391 $(CXX) -c $< -o $@
393 $(OBJDIR)/asn.o: ../drivers/snmplite/asn.cpp
394 $(CXX) -c $< -o $@
396 $(OBJDIR)/snmpeng.o: ../drivers/snmplite/snmp.cpp
397 $(CXX) -c $< -o $@
399 ######################################################################
401 # Files in src
402 OBJS_SRC = \
403 $(OBJDIR)/action.o \
404 $(OBJDIR)/apcnis.o \
405 $(OBJDIR)/device.o \
406 $(OBJDIR)/options.o \
407 $(OBJDIR)/reports.o
409 $(OBJDIR)/action.o: ../action.c
410 $(CXX) -c $< -o $@
412 $(OBJDIR)/apcnis.o: ../apcnis.c
413 $(CXX) -c $< -o $@
415 $(OBJDIR)/device.o: ../device.c
416 $(CXX) -c $< -o $@
418 $(OBJDIR)/options.o: ../options.c
419 $(CXX) -c $< -o $@
421 $(OBJDIR)/reports.o: ../reports.c
422 $(CXX) -c $< -o $@
424 ######################################################################
426 # apcupsd objects
427 OBJS_APCUPSD = \
428 $(OBJDIR)/apcupsd.o
430 $(OBJDIR)/apcupsd.o: ../apcupsd.c
431 $(CXX) -c $< -o $@
433 ######################################################################
435 # apctest objects
436 OBJS_APCTEST = \
437 $(OBJDIR)/apctest.o
439 $(OBJDIR)/apctest.o: ../apctest.c
440 $(CXX) -c $< -o $@
442 ######################################################################
444 # apcaccess objects
445 OBJS_ACCESS = \
446 $(OBJDIR)/apcaccess.o
448 $(OBJDIR)/apcaccess.o: ../apcaccess.c
449 $(CXX) -c $< -o $@
451 ######################################################################
453 # smtp objects
454 OBJS_SMTP = \
455 $(OBJDIR)/smtp.o \
456 $(OBJDIR)/apclog.o \
457 $(OBJDIR)/asys.o \
458 $(OBJDIR)/apcerror.o
460 $(OBJDIR)/smtp.o: ../smtp.c
461 $(CXX) -c $< -o $@
463 ######################################################################
465 # shutdown objects
466 OBJS_SHUT = \
467 $(OBJDIR)/shutdown.o
469 $(OBJDIR)/shutdown.o: shutdown.c
470 $(CXX) -c $< -o $@
472 ######################################################################
474 # popup objects
475 OBJS_POP = \
476 $(OBJDIR)/popup.o
478 $(OBJDIR)/popup.o: popup.c
479 $(CXX) -c $< -o $@
481 ######################################################################
483 # email objects
484 OBJS_EMAIL = \
485 $(OBJDIR)/email.o \
486 $(OBJDIR)/apclog.o \
487 $(OBJDIR)/asys.o \
488 $(OBJDIR)/apcerror.o
490 $(OBJDIR)/email.o: email.c
491 $(CXX) -c $< -o $@
493 ######################################################################
495 # background objects
496 OBJS_BKG = \
497 $(OBJDIR)/background.o
499 $(OBJDIR)/background.o: background.c
500 $(CXX) -c $< -o $@
502 ######################################################################
504 # apctray objects
505 OBJS_APT = \
506 $(OBJDIR)/apctray.o \
507 $(OBJDIR)/winabout.o \
508 $(OBJDIR)/winevents.o \
509 $(OBJDIR)/winstat.o \
510 $(OBJDIR)/apclog.o \
511 $(OBJDIR)/apclibnis.o \
512 $(OBJDIR)/asys.o \
513 $(OBJDIR)/apcerror.o \
514 $(OBJDIR)/wintray.o \
515 $(OBJDIR)/winres.res \
516 $(OBJDIR)/balloonmgr.o \
517 $(OBJDIR)/meter.o \
518 $(OBJDIR)/listview.o \
519 $(OBJDIR)/instmgr.o \
520 $(OBJDIR)/winconfig.o \
521 $(OBJDIR)/astring.o \
522 $(OBJDIR)/statmgr.o \
523 $(OBJDIR)/amutex.o \
524 $(OBJDIR)/gethostname.o
526 $(OBJDIR)/winabout.o: winabout.cpp
527 $(CXX) -c $< -o $@
529 $(OBJDIR)/winevents.o: winevents.cpp
530 $(CXX) -c $< -o $@
532 $(OBJDIR)/apctray.o: apctray.cpp
533 $(CXX) -c $< -o $@
535 $(OBJDIR)/winstat.o: winstat.cpp
536 $(CXX) -c $< -o $@
538 $(OBJDIR)/wintray.o: wintray.cpp
539 $(CXX) -c $< -o $@
541 $(OBJDIR)/balloonmgr.o: balloonmgr.cpp
542 $(CXX) -c $< -o $@
544 $(OBJDIR)/meter.o: meter.cpp
545 $(CXX) -c $< -o $@
547 $(OBJDIR)/listview.o: listview.cpp
548 $(CXX) -c $< -o $@
550 $(OBJDIR)/instmgr.o: instmgr.cpp
551 $(CXX) -c $< -o $@
553 $(OBJDIR)/winconfig.o: winconfig.cpp
554 $(CXX) -c $< -o $@
556 # Windows resource file formatted version (a,b,c,d)
557 comma := ,
558 RCVERSION = $(subst .,$(comma),$(firstword $(subst -, ,$(VERSION))).0)
560 $(OBJDIR)/winres.res: winres.rc
561 sed -e "s/\$$VERSION/$(VERSION)/" \
562 -e "s/FILEVERSION.*/FILEVERSION $(RCVERSION)/" \
563 -e "s/PRODUCTVERSION.*/PRODUCTVERSION $(RCVERSION)/" $< | \
564 $(WINDRES) $(INCLUDE_ICONS) -O coff -o $@
566 ######################################################################
568 GAPCMON_CFLAGS=-I$(DEPKGS)/glib/include/gtk-2.0 \
569 -I$(DEPKGS)/glib/lib/gtk-2.0/include \
570 -I$(DEPKGS)/glib/include/atk-1.0 \
571 -I$(DEPKGS)/glib/include/pango-1.0 \
572 -I$(DEPKGS)/glib/include/glib-2.0 \
573 -I$(DEPKGS)/glib/lib/glib-2.0/include \
574 -I$(DEPKGS)/glib/include/gconf/2 \
575 -I$(DEPKGS)/glib/include/orbit-2.0 \
576 -I$(DEPKGS)/glib/include/cairo \
577 -mms-bitfields
579 OBJS_GAPCMON = \
580 $(OBJDIR)/gapcmon.o
582 $(OBJDIR)/gapcmon.o: ../gapcmon/gapcmon.c
583 $(CC) $(GAPCMON_CFLAGS) -c $< -o $@
585 ######################################################################
587 # multimon objects
588 $(OBJDIR)/cgilib.o: ../cgi/cgilib.c
589 $(CXX) -c $< -o $@
591 $(OBJDIR)/multimon.o: ../cgi/multimon.c
592 $(CXX) -c $< -o $@
594 $(OBJDIR)/upsfetch.o: ../cgi/upsfetch.c
595 $(CXX) -c $< -o $@
597 $(OBJDIR)/upsfstats.o: ../cgi/upsfstats.c
598 $(CXX) -c $< -o $@
600 $(OBJDIR)/upsstats.o: ../cgi/upsstats.c
601 $(CXX) -c $< -o $@
603 $(OBJDIR)/upsimage.o: ../cgi/upsimage.c
604 $(CXX) -c $< -DSYS_IMGFMT_PNG -DNONDLL -o $@
606 ######################################################################
608 APC_OBJS = $(OBJS_SRC) $(LIB_OBJS) $(OBJS_COMPAT) $(OBJS_WIN) \
609 $(OBJS_DRIVERS) $(OBJS_TESTDRV) $(OBJS_NETDRV) \
610 $(OBJS_SMARTDRV) $(OBJS_DUMBDRV) $(OBJS_USBDRV) $(OBJS_SNMPLITEDRV) \
611 $(OBJS_SNMPDRV) $(OBJS_PCNETDRV) $(OBJS_APCUPSD)
612 APC_LIBS = $(LIB_PTHREADS) $(LIB_LIBUSB) $(LIB_NETSNMP) \
613 -L$(LIB_MINGW) -luser32 -lgdi32 -lwsock32 -lnetapi32
615 TEST_OBJS = $(OBJS_SRC) $(LIB_OBJS) $(OBJS_COMPAT) \
616 $(OBJS_DRIVERS) $(OBJS_TESTDRV) $(OBJS_NETDRV) \
617 $(OBJS_SMARTDRV) $(OBJS_DUMBDRV) $(OBJS_USBDRV) $(OBJS_SNMPLITEDRV) \
618 $(OBJS_SNMPDRV) $(OBJS_PCNETDRV) $(OBJS_APCTEST)
619 TEST_LIBS = $(LIB_PTHREADS) $(LIB_LIBUSB) $(LIB_NETSNMP) \
620 -L$(LIB_MINGW) -luser32 -lwsock32 -lnetapi32
622 ACCESS_OBJS = $(OBJS_ACCESS) $(LIB_OBJS) $(OBJS_COMPAT)
623 ACCESS_LIBS = $(LIB_PTHREADS) -L$(LIB_MINGW) -luser32 -lwsock32 -lnetapi32
625 SHUT_OBJS = $(OBJS_SHUT)
626 SHUT_LIBS =
628 POP_OBJS = $(OBJS_POP)
629 POP_LIBS =
631 BKG_OBJS = $(OBJS_BKG)
632 BKG_LIBS =
634 APT_OBJS = $(OBJS_APT) $(OBJS_COMPAT)
635 APT_LIBS = -L$(LIB_MINGW) -luser32 -lgdi32 -lwsock32 -lnetapi32 -lrpcrt4 $(LIB_PTHREADS)
637 SMTP_OBJS = $(OBJS_SMTP) $(OBJS_COMPAT)
638 SMTP_LIBS = $(APC_LIBS)
640 EMAIL_OBJS = $(OBJS_EMAIL) $(OBJS_COMPAT)
641 EMAIL_LIBS = -L$(LIB_MINGW) -lwsock32 -lmapi32
643 GAPCMON_OBJS = $(OBJS_GAPCMON)
644 GAPCMON_LIBS = $(LIB_PTHREADS) -L$(DEPKGS)/glib/lib -Wl,--export-dynamic \
645 -lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangowin32-1.0 \
646 -lpango-1.0 -lgobject-2.0 -lgconf-2 -lORBit-2 -lm -lgmodule-2.0 \
647 -lgthread-2.0 -lglib-2.0
649 MULTIMON_OBJS = $(OBJDIR)/upsfetch.o $(OBJDIR)/cgilib.o $(OBJDIR)/multimon.o \
650 $(OBJDIR)/apclibnis.o $(OBJDIR)/asys.o ${OBJDIR}/apcerror.o \
651 ${OBJDIR}/netcompat.o $(OBJDIR)/gethostname.o
652 MULTIMON_LIBS = -L$(LIB_MINGW) -lwsock32
654 UPSSTATS_OBJS = $(OBJDIR)/upsfetch.o $(OBJDIR)/cgilib.o $(OBJDIR)/upsstats.o \
655 $(OBJDIR)/apclibnis.o $(OBJDIR)/asys.o ${OBJDIR}/apcerror.o \
656 ${OBJDIR}/netcompat.o $(OBJDIR)/gethostname.o
657 UPSSTATS_LIBS = -L$(LIB_MINGW) -lwsock32
659 UPSFSTATS_OBJS = $(OBJDIR)/upsfetch.o $(OBJDIR)/cgilib.o $(OBJDIR)/upsfstats.o \
660 $(OBJDIR)/apclibnis.o $(OBJDIR)/asys.o ${OBJDIR}/apcerror.o \
661 ${OBJDIR}/netcompat.o $(OBJDIR)/gethostname.o
662 UPSFSTATS_LIBS = -L$(LIB_MINGW) -lwsock32
664 UPSIMAGE_OBJS = $(OBJDIR)/cgilib.o $(OBJDIR)/upsimage.o \
665 $(OBJDIR)/asys.o ${OBJDIR}/apcerror.o
666 UPSIMAGE_LIBS = -L$(DEPKGS)/lib -lgd -lpng12 -lz
668 # Targets
670 objdir:
671 mkdir -p ${OBJDIR}
673 all: objdir apcupsd.exe apcaccess.exe shutdown.exe popup.exe apctest.exe \
674 smtp.exe email.exe background.exe apctray.exe multimon.cgi upsstats.cgi \
675 upsfstats.cgi upsimage.cgi
677 clean:
678 rm -rf $(OBJDIR) *.exe *.cgi
679 rm -rf pthreadGCE.dll mingwm10.dll
681 pthreadGCE.dll: $(DEPKGS)/lib/pthreadGCE.dll
682 cp -f $(DEPKGS)/lib/pthreadGCE.dll .
684 mingwm10.dll: $(MINGW)/mingw32/bin/mingwm10.dll
685 cp -f $(MINGW)/mingw32/bin/mingwm10.dll .
687 # Link the apcupsd daemon executable ...
688 apcupsd.exe: $(APC_OBJS) pthreadGCE.dll mingwm10.dll
689 $(CXX) $(APC_OBJS) $(APC_LIBS) -mwindows -o $@
691 apcaccess.exe: $(ACCESS_OBJS) pthreadGCE.dll mingwm10.dll
692 $(CXX) $(ACCESS_OBJS) $(ACCESS_LIBS) -o $@
694 apctest.exe: $(TEST_OBJS) pthreadGCE.dll mingwm10.dll
695 $(CXX) $(TEST_OBJS) $(TEST_LIBS) -o $@
697 shutdown.exe: $(SHUT_OBJS) mingwm10.dll
698 $(CXX) $(SHUT_OBJS) $(SHUT_LIBS) -mwindows -o $@
700 popup.exe: $(POP_OBJS) mingwm10.dll
701 $(CXX) $(POP_OBJS) $(POP_LIBS) -mwindows -o $@
703 email.exe: $(EMAIL_OBJS) mingwm10.dll
704 $(CXX) $(EMAIL_OBJS) $(EMAIL_LIBS) -o $@
706 background.exe: $(BKG_OBJS) mingwm10.dll
707 $(CXX) $(BKG_OBJS) $(BKG_LIBS) -mwindows -o $@
709 smtp.exe: $(SMTP_OBJS) mingwm10.dll
710 $(CXX) $(SMTP_OBJS) $(SMTP_LIBS) -o $@
712 apctray.exe: $(APT_OBJS) mingwm10.dll
713 $(CXX) $(APT_OBJS) $(APT_LIBS) -mwindows -o $@
715 gapcmon.exe: $(GAPCMON_OBJS)
716 $(CC) $(GAPCMON_OBJS) $(GAPCMON_LIBS) -mwindows -o $@
718 multimon.cgi: $(MULTIMON_OBJS) mingwm10.dll
719 $(CXX) $(MULTIMON_OBJS) $(MULTIMON_LIBS) -o $@
721 upsstats.cgi: $(UPSSTATS_OBJS) mingwm10.dll
722 $(CXX) $(UPSSTATS_OBJS) $(UPSSTATS_LIBS) -o $@
724 upsfstats.cgi: $(UPSFSTATS_OBJS) mingwm10.dll
725 $(CXX) $(UPSFSTATS_OBJS) $(UPSFSTATS_LIBS) -o $@
727 upsimage.cgi: $(UPSIMAGE_OBJS) mingwm10.dll
728 $(CXX) $(UPSIMAGE_OBJS) $(UPSIMAGE_LIBS) -o $@
730 winapcupsd.exe: all installer/*.nsi installer/*.nsh installer/*.ini $(TEXTFILES)
731 $(STRIP) *.exe *.dll *.cgi
732 $(UNIX2DOS) -k -n $(foreach f,$(TEXTFILES),$(f) installer/$(subst .txt,,$(notdir $(f))).txt)
733 $(MAKENSIS) -V2 -DDEPKGS="$(DEPKGS)" -DVERSION="$(VERSION)" -DTOPDIR="${TOPDIR}" -DUSBTYPE="${USBTYPE}" installer/winapcupsd.nsi