1# Copyright (c) 2010-2011, Red Hat, Inc. 2# 3# Permission to use, copy, modify, and/or distribute this software for any 4# purpose with or without fee is hereby granted, provided that the above 5# copyright notice and this permission notice appear in all copies. 6# 7# THE SOFTWARE IS PROVIDED "AS IS" AND RED HAT, INC. DISCLAIMS ALL WARRANTIES 8# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES 9# OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL RED HAT, INC. BE LIABLE 10# FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 11# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION 12# OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 13# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 14 15CFLAGS += -Wall -Wshadow -Wp,-D_FORTIFY_SOURCE=2 -g 16PREFIX ?= /usr/local 17BINDIR ?= $(PREFIX)/bin 18MANDIR ?= $(PREFIX)/man 19 20INSTALL_PROGRAM ?= install 21 22PROGRAM_NAME = omping 23VERSION_SH = `grep PROGRAM_VERSION omping.h | head -n 1 | sed 's/^.*\"\(.*\)\"/\1/'` 24 25all: $(PROGRAM_NAME) 26 27all-illumos: 28 CFLAGS="$(CFLAGS) -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED=1 -D__EXTENSIONS__=1" \ 29 LDFLAGS="$(LDFLAGS) -lsocket -lnsl" $(MAKE) all 30 31$(PROGRAM_NAME): addrfunc.o cli.o gcra.o logging.o msg.o msgsend.o omping.o rhfunc.o rsfunc.o \ 32 sockfunc.o tlv.o util.o 33 $(CC) $(CFLAGS) $(LDFLAGS) addrfunc.o cli.o gcra.o logging.o msg.o msgsend.o omping.o \ 34 rhfunc.o rsfunc.o sockfunc.o tlv.o util.o -o $@ 35 36addrfunc.o: addrfunc.c addrfunc.h logging.h 37 $(CC) -c $(CFLAGS) $< -o $@ 38 39cli.o: cli.c cli.h addrfunc.h omping.h logging.h sockfunc.h 40 $(CC) -c $(CFLAGS) $< -o $@ 41 42gcra.o: gcra.c gcra.h util.h 43 $(CC) -c $(CFLAGS) $< -o $@ 44 45logging.o: logging.c logging.h 46 $(CC) -c $(CFLAGS) $< -o $@ 47 48msg.o: msg.c msg.h logging.h omping.h tlv.h 49 $(CC) -c $(CFLAGS) $< -o $@ 50 51msgsend.o: msgsend.c addrfunc.h logging.h msg.h msgsend.h omping.h rsfunc.h util.h 52 $(CC) -c $(CFLAGS) $< -o $@ 53 54omping.o: omping.c addrfunc.h cli.h logging.h msg.h msgsend.h omping.h rhfunc.h rsfunc.h sockfunc.h tlv.h util.h 55 $(CC) -c $(CFLAGS) $< -o $@ 56 57rhfunc.o: rhfunc.c rhfunc.h addrfunc.h util.h 58 $(CC) -c $(CFLAGS) $< -o $@ 59 60rsfunc.o: rsfunc.c rsfunc.h addrfunc.h logging.h util.h 61 $(CC) -c $(CFLAGS) $< -o $@ 62 63sockfunc.o: sockfunc.c addrfunc.h logging.h sockfunc.h 64 $(CC) -c $(CFLAGS) $< -o $@ 65 66tlv.o: tlv.c logging.h addrfunc.h util.h 67 $(CC) -c $(CFLAGS) $< -o $@ 68 69util.o: util.c util.h logging.h 70 $(CC) -c $(CFLAGS) $< -o $@ 71 72install: $(PROGRAM_NAME) 73 test -z "$(DESTDIR)/$(BINDIR)" || mkdir -p "$(DESTDIR)/$(BINDIR)" 74 $(INSTALL_PROGRAM) -c $< $(DESTDIR)/$(BINDIR) 75 test -z "$(DESTDIR)/$(MANDIR)/man8" || mkdir -p "$(DESTDIR)/$(MANDIR)/man8" 76 $(INSTALL_PROGRAM) -c -m 0644 $<.8 $(DESTDIR)/$(MANDIR)/man8 77 78uninstall: 79 rm -f $(DESTDIR)/$(BINDIR)/$(PROGRAM_NAME) 80 rm -f $(DESTDIR)/$(MANDIR)/man8/$(PROGRAM_NAME).8 81 82install-strip: 83 $(MAKE) INSTALL_PROGRAM="$(INSTALL_PROGRAM) -s" install 84 85TAGS: 86 ctags *.[ch] 87 88dist: 89 mkdir -p $(PROGRAM_NAME)-$(VERSION_SH) 90 cp AUTHORS COPYING Makefile *.[ch] $(PROGRAM_NAME).8 $(PROGRAM_NAME).spec $(PROGRAM_NAME)-$(VERSION_SH)/ 91 tar -czf $(PROGRAM_NAME)-$(VERSION_SH).tar.gz $(PROGRAM_NAME)-$(VERSION_SH) 92 rm -rf $(PROGRAM_NAME)-$(VERSION_SH) 93 94installdirs: 95 mkdir -p "$(DESTDIR)/bin" 96 97clean: 98 rm -f $(PROGRAM_NAME) *.o 99