diff Makefile @ 0:a7e41e1a79c8

Initial revision
author Guido Berhoerster <guido+pwm@berhoerster.name>
date Thu, 19 Jan 2017 22:39:51 +0100
parents
children 55281f14dc9b
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Makefile	Thu Jan 19 22:39:51 2017 +0100
@@ -0,0 +1,167 @@
+#
+# Copyright (C) 2016 Guido Berhoerster <guido+pwm@berhoerster.name>
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+PACKAGE =	pwm
+VERSION =	1
+DISTNAME :=	$(PACKAGE)-$(VERSION)
+
+# gcc, clang, icc, Sun/Solaris Studio
+CC :=		$(CC) -std=c99
+COMPILE.c =	$(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(XCPPFLAGS) $(TARGET_ARCH) -c
+# gcc, clang, icc
+MAKEDEPEND.c =	$(CC) -MM $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(XCPPFLAGS)
+# Sun/Solaris Studio
+#MAKEDEPEND.c =	$(CC) -xM1 $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(XCPPFLAGS)
+# X makedepend
+#MAKEDEPEND.c =	makedepend -f- -Y -- $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(XCPPFLAGS) --
+LINK.c =	$(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(XCPPFLAGS) $(LDFLAGS) $(XLDFLAGS) $(TARGET_ARCH)
+LINK.o =	$(CC) $(LDFLAGS) $(XLDFLAGS) $(TARGET_ARCH)
+CP :=		cp
+INSTALL :=	install
+INSTALL.exec :=	$(INSTALL) -D -m 0755
+INSTALL.data :=	$(INSTALL) -D -m 0644
+INSTALL.link :=	$(CP) -f -P
+PAX :=		pax
+GZIP :=		gzip
+SED :=		sed
+
+DESTDIR ?=
+prefix ?=	/usr/local
+bindir ?=	$(prefix)/bin
+
+OS_NAME :=	$(shell uname -s)
+OS_RELEASE :=	$(shell uname -r)
+
+ifeq ($(OS_NAME),Linux)
+  HAVE_ASPRINTF ?=	1
+  HAVE_ERR_H ?=		1
+  HAVE_READPASSPHRASE_H ?= 0
+  HAVE_SETPROGNAME ?=	0
+  HAVE_SYS_TREE_H ?=	0
+else ifneq ($(findstring $(OS_NAME),FreeBSD DragonFly),)
+  HAVE_ASPRINTF ?=	1
+  HAVE_ERR_H ?=		1
+  HAVE_READPASSPHRASE_H ?= 1
+  HAVE_SETPROGNAME ?=	1
+  HAVE_SYS_TREE_H ?=	1
+else ifeq ($(OS_NAME),NetBSD)
+  HAVE_ASPRINTF ?=	1
+  HAVE_ERR_H ?=		1
+  HAVE_READPASSPHRASE_H ?= 0
+  HAVE_SYS_TREE_H ?=	1
+  HAVE_SETPROGNAME ?=	1
+else ifeq ($(OS_NAME),OpenBSD)
+  HAVE_ASPRINTF ?=	1
+  HAVE_ERR_H ?=		1
+  HAVE_READPASSPHRASE_H ?= 1
+  HAVE_SYS_TREE_H ?=	1
+  HAVE_SETPROGNAME ?=	1
+else ifeq ($(OS_NAME),SunOS)
+  ifeq ($(OS_RELEASE),5.10)
+    HAVE_ASPRINTF ?=	0
+    HAVE_ERR_H ?=	0
+  else
+    HAVE_ASPRINTF ?=	1
+    HAVE_ERR_H ?=	1
+  endif
+  HAVE_READPASSPHRASE_H ?= 0
+  HAVE_SYS_TREE_H ?=	0
+  HAVE_SETPROGNAME ?=	0
+else
+  HAVE_ASPRINTF ?=	0
+  HAVE_ERR_H ?=		0
+  HAVE_READPASSPHRASE_H ?= 0
+  HAVE_SETPROGNAME ?=	0
+  HAVE_SYS_TREE_H ?=	0
+endif
+
+OBJS =	cmd.o \
+	pwfile.o \
+	pwm.o \
+	tok.o \
+	util.o
+
+.DEFAULT_TARGET = all
+
+.PHONY: all clean clobber dist install
+
+all: $(PACKAGE)
+
+XCPPFLAGS =	-DPACKAGE=\"$(PACKAGE)\" \
+		-DVERSION=\"$(VERSION)\"
+LDLIBS =	-lpws -lnettle
+ifeq ($(HAVE_ERR_H),1)
+  XCPPFLAGS +=	-DHAVE_ERR_H
+else
+  OBJS +=	compat/err.o
+endif
+ifeq ($(HAVE_READPASSPHRASE_H),1)
+  XCPPFLAGS +=	-DHAVE_READPASSPHRASE_H
+else
+  OBJS +=	compat/readpassphrase.o
+endif
+ifeq ($(HAVE_SETPROGNAME),1)
+  XCPPFLAGS +=	-DHAVE_SETPROGNAME
+else
+  OBJS +=	compat/setprogname.o
+endif
+ifeq ($(HAVE_SYS_TREE_H),1)
+  XCPPFLAGS +=	-DHAVE_SYS_TREE_H
+endif
+ifneq ($(findstring $(OS_NAME),FreeBSD DragonFly OpenBSD),)
+  XCPPFLAGS +=	-I/usr/local/include
+  XLDFLAGS +=	-L/usr/local/lib
+else ifeq ($(OS_NAME),NetBSD)
+  XCPPFLAGS +=	-I/usr/pkg/include
+  XLDFLAGS +=	-L/usr/pkg/lib
+endif
+ifeq ($(findstring $(OS_NAME),FreeBSD DragonFly NetBSD OpenBSD),)
+  XCPPFLAGS +=	-D_XOPEN_SOURCE=600
+endif
+ifeq ($(OS_NAME),SunOS)
+  XCPPFLAGS +=	-I/usr/xpg4/include -D__EXTENSIONS__
+  XLDFLAGS +=	-L/usr/xpg4/lib -R/usr/xpg4/lib
+endif
+
+$(PACKAGE): $(OBJS)
+	$(LINK.o) $^ $(LDLIBS) -o $@
+
+%.o: %.c
+	$(MAKEDEPEND.c) $< | $(SED) -f deps.sed >$*.d
+	$(COMPILE.c) -o $@ $<
+
+install:
+	$(INSTALL.exec) $(PACKAGE) "$(DESTDIR)$(bindir)/$(PACKAGE)"
+
+clean:
+	rm -f $(PACKAGE) $(OBJS)
+
+clobber: clean
+	rm -f $(patsubst %.o,%.d,$(OBJS))
+
+dist: clobber
+	$(PAX) -w -x ustar -s ',.*/\..*,,' -s ',./[^/]*\.tar\.gz,,' \
+	    -s ',^\.$$,,' -s ',\./,$(DISTNAME)/,' . | \
+	    $(GZIP) > $(DISTNAME).tar.gz
+
+-include $(patsubst %.o,%.d,$(OBJS))